Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
kazzx

introduzir valores duplicados

Recommended Posts

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  :)

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.