Usuário com melhor resposta
Salvar e verificar dados SQL Server e VB.NET

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.TextSQLcmd.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
Respostas
-
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.- Editado Fabio I terça-feira, 22 de agosto de 2017 17:03
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 28 de agosto de 2017 13:38
Todas as Respostas
-
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.- Editado Fabio I terça-feira, 22 de agosto de 2017 17:03
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 28 de agosto de 2017 13:38
-
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.