Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

kazzx

introduzir valores duplicados

Mensagens Recomendadas

kazzx

viva,

num form tenho de inserir vários campos, onde alguns deles se vão repetir na mesma tabela, nomeadamente preços de equipamentos.

eu estou a user o código, que a seguir vou mostrar, mas devo estar a fazer alguma coisa incorrecta que não me permite inserir nenhum campo duplicado.

a minha base de dados está feita em Microsoft SQL Server e eu quando insiro directamente dados na tabela no Server Explorer, inserindo alguns campos iguais nomeadamente os preços, esta operação é validada mas no ambiente da página  não consigo.

    Protected Sub btngravar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btngravar.Click
        Dim existe As Integer = 0
        Dim strexiste As String
        strexiste = "SELECT COUNT * FROM escolhas WHERE cod_escolhas=" & Val(lblcod.Text)
        'strexiste = "SELECT cod_escolhas FROM escolhas WHERE cod_escolhas=" & Val(lblcod.Text)
        cmd = New SqlCommand(strexiste, Module1.conn)
        existe = cmd.ExecuteScalar
        If existe = 0 Then
            Dim strSQL As String
            strSQL = "INSERT INTO escolhas (cod_escolhas,material,preco_base,entidade,justi) VALUES (" & Val(lblcod.Text) & ",'" & Trim(txtmaterial.Text) & "','" & Trim(txtprecobase.Text) & "', '" & Trim(txtescolha.Text) & "', '" & Trim(txtjustif.Text) & "')"
            cmd = New SqlCommand(strSQL, Module1.conn)
            cmd.ExecuteNonQuery()
            MsgBox("Sucesso")
            lblcod.Text = ""
        Else
            Dim aoi As MsgBoxResult
            aoi = MsgBox("Não podem ser aplicados valores duplicados")
        End If
    End Sub

cumps  :)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
paulo silva

Boas,

Tenta fazer um Try para ver que tipo de erro te dá.

Qualquer coisa do Gernero.

Protected Sub btngravar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btngravar.Click
        Dim existe As Integer = 0
        Dim strexiste As String
try
   strexiste = "SELECT COUNT * FROM escolhas WHERE cod_escolhas=" & Val(lblcod.Text)
        'strexiste = "SELECT cod_escolhas FROM escolhas WHERE cod_escolhas=" & Val(lblcod.Text)
        cmd = New SqlCommand(strexiste, Module1.conn)
        existe = cmd.ExecuteScalar
        If existe = 0 Then
            Dim strSQL As String
            strSQL = "INSERT INTO escolhas (cod_escolhas,material,preco_base,entidade,justi) VALUES (" & Val(lblcod.Text) & ",'" & Trim(txtmaterial.Text) & "','" & Trim(txtprecobase.Text) & "', '" & Trim(txtescolha.Text) & "', '" & Trim(txtjustif.Text) & "')"
            cmd = New SqlCommand(strSQL, Module1.conn)
            cmd.ExecuteNonQuery()
            MsgBox("Sucesso")
            lblcod.Text = ""
        Else
            Dim aoi As MsgBoxResult
            aoi = MsgBox("Não podem ser aplicados valores duplicados")
        End If
Catch ex As Exception
msgbox(ex.message)
end try
     
    End Sub

Cumprimentos Paulo Silva

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
paulo silva

Boas,

Então já sabes qual é o problema.

 strexiste = "SELECT COUNT(nomeCampo) FROM escolhas WHERE cod_escolhas=" & Val(lblcod.Text)

Cumprimentos Paulo Silva

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
RicardoGaio

está mal escrita a Querry?

Por exemplo...

Experimenta copiar a query que aí tens e criar uma view no SQL Server, para ver o que dá...


Um abraço, Ricardo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
paulo silva

Boas,

Viste o Select que tens e vês o meu exemplo e percebes logo onde anda o erro.

Ao fazeres o count tens de indicar o campo que queres contar e nunca podes por um "*" depois disso.

Cumprimentos Paulo Silva

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.