VERIFICACAO BANCO DE DADOS

FERATK 04/04/2013 01:17:22
#421487
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
ALTAIR148 04/04/2013 06:59:50
#421491
Utilize um select para fazer a verificação.

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()
FERATK 04/04/2013 11:35:24
#421507
Altair, desculpa minha ignorância mas não entendi direito como funciona o código.


PS.: To usando o access, não o mySQL
ALTAIR148 04/04/2013 12:25:44
#421510
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.
ERINALDO 04/04/2013 12:46:49
#421513
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
ERINALDO 04/04/2013 12:49:32
#421514
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
FELLIPEASSIS 05/04/2013 18:04:44
#421580
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
Tópico encerrado , respostas não são mais permitidas