VERIFICACAO BANCO DE DADOS
Pessoal, como verifico se já existe um determinado valor no banco de dados.
Estou fazendo o cadastro de funcionários, e ele vai receber um valor para o código e outro para o nome. Quero que verifique se o código digitado ja pertence a outro funcionário, já que o mesmo é único.
Grato pela ajuda
Felipe
Estou fazendo o cadastro de funcionários, e ele vai receber um valor para o código e outro para o nome. Quero que verifique se o código digitado ja pertence a outro funcionário, já que o mesmo é único.
Grato pela ajuda
Felipe
Utilize um select para fazer a verificação.
Exemplo:
Exemplo:
Dim reader As MySql.Data.MySqlClient.MySqlDataReader
Dim cmd As New MySql.Data.MySqlClient.MySqlCommand([Ô] select * from tb_funcionario where Funcionario_Codigo = @Funcionario_Codigo[Ô], Conexao.GetConexao)
cmd.Parameters.AddWithValue([Ô]@Funcionario_Codigo[Ô], Funcionario_Codigo)
reader = cmd.ExecuteReader
If reader.HasRows Then [ô]Esse if avisa se algum valor foi retornado
Msgbox [Ô]Código já cadastrado[Ô]
End If
reader.Close()
cmd.Dispose()
Conexao.Desconectar()
Altair, desculpa minha ignorância mas não entendi direito como funciona o código.
PS.: To usando o access, não o mySQL
PS.: To usando o access, não o mySQL
Citação:Altair, desculpa minha ignorância mas não entendi direito como funciona o código.
Para saber se o registro existe no banco vc vai precisar fazer um select, nesse exemplo ai vc passa o código que você quer saber se ele existe, caso ele existir vai entrar essa condição
If reader.HasRows = true Then [ô]Esse if avisa se algum valor foi retornado
Msgbox [Ô]Código já cadastrado[Ô]
End If
Se o o registro existir o reader.HasRows vai retornar TRUE se não existir ele vai retornar FALSE.
Citação:PS.: To usando o access, não o mySQL
Isso funciona tanto com Access quanto com MYSQL basta adaptar.
Imports System.Data.OleDb
Public Class Form1
Dim ligação As String = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Indicar a localização da BD.accdb;Persist Security Info=False;[Ô]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim conecção As New OleDbConnection(ligação)
Dim sintaxe As String = [Ô]Select * from [ô]nome da tabela[ô] where [ô]campo a procuar[ô] = [ô]varivel com o valor a procurar[ô] [Ô] [ô] Ex: [Ô]Select * from clientes where ID = @id[Ô]
Dim command As New OleDbCommand(sintaxe, conecção)
command.Parameters.Add([Ô]@id[Ô], OleDb.OleDbType.VarChar).Value = TextBox1.Text [ô] indicar o nome da variavel (@id no ex.) e onde é que vai buscar o valor
conecção.Open()
Dim leitor As OleDbDataReader = command.ExecuteReader
If leitor.HasRows Then
While leitor.Read
MsgBox([Ô]Id: [Ô] + leitor.Item([Ô]id[Ô]).ToString + vbNewLine + [Ô]Nome: [Ô] + leitor.Item([Ô]nome[Ô]).ToString) [ô] Apresenta o id e o nome
End While
Else
MsgBox([Ô]O Cliente não esta cadastrado!!![Ô]) [ô] se nao existir nehum id, indica que não existe nada
End If
conecção.Close()
sintaxe = Nothing
conecção = Nothing
End Sub
End Class
Public Class Form1
Dim ligação As String = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Indicar a localização da BD.accdb;Persist Security Info=False;[Ô]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim conecção As New OleDbConnection(ligação)
Dim sintaxe As String = [Ô]Select * from [ô]nome da tabela[ô] where [ô]campo a procuar[ô] = [ô]varivel com o valor a procurar[ô] [Ô] [ô] Ex: [Ô]Select * from clientes where ID = @id[Ô]
Dim command As New OleDbCommand(sintaxe, conecção)
command.Parameters.Add([Ô]@id[Ô], OleDb.OleDbType.VarChar).Value = TextBox1.Text [ô] indicar o nome da variavel (@id no ex.) e onde é que vai buscar o valor
conecção.Open()
Dim leitor As OleDbDataReader = command.ExecuteReader
If leitor.HasRows Then
While leitor.Read
MsgBox([Ô]Id: [Ô] + leitor.Item([Ô]id[Ô]).ToString + vbNewLine + [Ô]Nome: [Ô] + leitor.Item([Ô]nome[Ô]).ToString) [ô] Apresenta o id e o nome
End While
Else
MsgBox([Ô]O Cliente não esta cadastrado!!![Ô]) [ô] se nao existir nehum id, indica que não existe nada
End If
conecção.Close()
sintaxe = Nothing
conecção = Nothing
End Sub
End Class
Dim conecção As New OleDbConnection(ligação)
Dim sintaxe As String = [Ô]Insert Into clientes ([nome], [morada]) values (@nome, @morada)[Ô] [ô] onde esta ([nome], morada]) é por o nome dos campos (igual aos da BD). Em (@nome, @morada), é por as variáveis que vão receber os dados. Essas variaveis vão ser declarados em baixo, no command.parameters.
Dim command As New OleDbCommand(sintaxe, conecção)
command.Parameters.Add([Ô]@nome[Ô], OleDb.OleDbType.VarChar).Value = TextBox1.Text
command.Parameters.Add([Ô]@morada[Ô], OleDb.OleDbType.VarChar).Value = TextBox2.Text
conecção.Open()
Dim insere As Integer = command.ExecuteNonQuery()
If insere < 1 Then
MsgBox([Ô]O cliente não foi registado!! Tente novamente!![Ô])
Else
MsgBox([Ô]O cliente foi registado com sucesso!![Ô])
End If
conecção.Close()
sintaxe = Nothing
conecção = Nothing
Dim sintaxe As String = [Ô]Insert Into clientes ([nome], [morada]) values (@nome, @morada)[Ô] [ô] onde esta ([nome], morada]) é por o nome dos campos (igual aos da BD). Em (@nome, @morada), é por as variáveis que vão receber os dados. Essas variaveis vão ser declarados em baixo, no command.parameters.
Dim command As New OleDbCommand(sintaxe, conecção)
command.Parameters.Add([Ô]@nome[Ô], OleDb.OleDbType.VarChar).Value = TextBox1.Text
command.Parameters.Add([Ô]@morada[Ô], OleDb.OleDbType.VarChar).Value = TextBox2.Text
conecção.Open()
Dim insere As Integer = command.ExecuteNonQuery()
If insere < 1 Then
MsgBox([Ô]O cliente não foi registado!! Tente novamente!![Ô])
Else
MsgBox([Ô]O cliente foi registado com sucesso!![Ô])
End If
conecção.Close()
sintaxe = Nothing
conecção = Nothing
coloque auto incremento ou auto numeraçao para o codigo da tabela e para rg,cpf,cpj, ou coisa q somente uma pessoa possui
coloque mais uma chave primaria ou uma unique key (chave unica), assim quando cadastrar por exemplo um cliente que já existe
ira mostrar a mensagem no bloco catch
coloque mais uma chave primaria ou uma unique key (chave unica), assim quando cadastrar por exemplo um cliente que já existe
ira mostrar a mensagem no bloco catch
Tópico encerrado , respostas não são mais permitidas