none
Salvar e verificar dados SQL Server e VB.NET RRS feed

  • Pergunta

  • Boa Tarde

    Eu estou trabalhando em um projeto que voce salva dados no VB.NET e envia a database do SQL Server.

    Eu salvo o ADPID, password, email, firstname, lastname, funcao,userlevel pelo VB.NET e envio a database do SQL, todos os dados podem ser repetidos sem problema, unico dado que tem que ser unico seria "ADPID".

    Da forma que meu projeto esta se eu digitar e salvar duas vezes o mesmo numero de ADPIP ele salva dois iguais no Database.

    Gostaria de saber como eu verifico se ja existe no banco de dados esse ADPIP e se existir exibir uma mensagem que ja existe e nao deixar salvar.

    Obrigado.

    Table: TB_User

    Columm: TB_ADPIDUser

    Private Sub BT_SaveUser_Click(sender As System.Object, e As System.EventArgs) Handles BT_SaveUser.Click

            Dim StrConn = "password=" & dbPWD & ";Persist Security Info=True;User ID=" & dbUserName & ";Initial Catalog=" & dbName & ";Data Source=" & dbAddress & ""

            Dim SQLConn As New SqlConnection(StrConn)

            Try

                SQLConn.Open()
                SQLcmd.CommandType = System.Data.CommandType.Text

                SQLcmd.CommandText = "Insert Into TB_User (ADPID,PassU,Email,FirstName,LastName,Func,UserLevel) Values (" & CInt(TB_ADPIDUser.Text) & ", " & CInt(TB_TP.Text) & ", '" & TB_EmailUser.Text & "', '" & TB_FNUser.Text & "', '" & TB_LNUser.Text & "', '" & CB_Function.Text & "', " & CInt(CB_UserLevel.Text) & ")"
                SQLcmd.Connection = SQLConn
                SQLcmd.ExecuteNonQuery()

                MsgBox("Save Succefully", MsgBoxStyle.Information, "New User")

     Catch ex As Exception
                MessageBox.Show(ex.Message)

            End Try
        End Sub

    terça-feira, 22 de agosto de 2017 16:00

Respostas

  • Julian J T,

       ALGUMAS ATITUDES VOCÊ PODE TOMAR... Epa! Baixou o Yoda aqui!

    1- Você pode definir o campo ADPIP no banco de dados como:

       1.1 - PK = Primary Key (Chave Primária - NÃO aceita campo nulo);

       1.2 - UNIQUE = Chave única (aceita campos nulos, mas não aceita campos repetidos);

    ============================

    Criar índices exclusivos

    https://docs.microsoft.com/pt-br/sql/relational-databases/indexes/create-unique-indexes

    ============================

    Unique Constraints and Unique Indexes

    https://technet.microsoft.com/en-us/library/aa224827%28v=sql.80%29.aspx?f=255&MSPPError=-2147217396

    ============================

    2-  Antes de mandar gravar (INSERT) você precisa fazer um SELECT simples para retornar 0 ou 1.

        Se for "0", NÃO existe o ADPIP na base de dados, pode gravar;

        Se for "1", existe o ADPIP na base de dados, NÃO pode gravar;

    ============================

    COUNT (Transact-SQL)

    https://docs.microsoft.com/en-us/sql/t-sql/functions/count-transact-sql

    Alguma coisa assim:

    SELECT COUNT(*)
    FROM TB_User
    WHERE ADPID = CInt(TB_ADPIDUser.Text)

    ============================

    []'s,
    Fabio Ingenito.


    terça-feira, 22 de agosto de 2017 16:56

Todas as Respostas

  • Julian J T,

       ALGUMAS ATITUDES VOCÊ PODE TOMAR... Epa! Baixou o Yoda aqui!

    1- Você pode definir o campo ADPIP no banco de dados como:

       1.1 - PK = Primary Key (Chave Primária - NÃO aceita campo nulo);

       1.2 - UNIQUE = Chave única (aceita campos nulos, mas não aceita campos repetidos);

    ============================

    Criar índices exclusivos

    https://docs.microsoft.com/pt-br/sql/relational-databases/indexes/create-unique-indexes

    ============================

    Unique Constraints and Unique Indexes

    https://technet.microsoft.com/en-us/library/aa224827%28v=sql.80%29.aspx?f=255&MSPPError=-2147217396

    ============================

    2-  Antes de mandar gravar (INSERT) você precisa fazer um SELECT simples para retornar 0 ou 1.

        Se for "0", NÃO existe o ADPIP na base de dados, pode gravar;

        Se for "1", existe o ADPIP na base de dados, NÃO pode gravar;

    ============================

    COUNT (Transact-SQL)

    https://docs.microsoft.com/en-us/sql/t-sql/functions/count-transact-sql

    Alguma coisa assim:

    SELECT COUNT(*)
    FROM TB_User
    WHERE ADPID = CInt(TB_ADPIDUser.Text)

    ============================

    []'s,
    Fabio Ingenito.


    terça-feira, 22 de agosto de 2017 16:56
  • Bom dia,

    Por falta de retorno essa thread está encerrada.

    Se preciso, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 28 de agosto de 2017 13:38
    Moderador