URGENTE, AJUDA NO VB
Verifica
O meu é o vb 2008 express edition
Passe seu email, eu mando meu projeto pra vc dar uma olhada
Pois está dando erro esse projeto
Enviarei as três fotos, sobre os 3 eventos que acontecem qdo clico no botão cadastrar, sobre o email repetido...
foto 2
a segunda msg que aparece seguida
a segunda msg que aparece seguida
3 mensagem seguida que aparece
VINICIUS2445, tudo bem?
O que o amigo OMAR2011 está querendo dizer é que uma chave primária geralmente é um campo número e você está passando um texto para validar como número!
De fato isso não vai funcionar, portanto o que você precisa fazer é o seguinte, ou seja, seguinte o método do OMAR2011.
Primeiro nos mostre onde ocorre o erro, pois o que o OMAR2011 lhe passou só de ler de fato funciona!
Você está debugando o seu código? Em que linha do código é apresentado o erro para saber isso tire o try catch.
Try
dbcon.Open()
Dim flag As Boolean = False
Dim cod As String = TextBox13.Text
Dim sqll As String = String.Format([Ô]SELECT * FROM Cad_Cliente where Email =[ô]{0}[ô] [Ô], cod)
Dim cm1 As New OleDb.OleDbCommand(sqll, dbcon)
Dim dr1 As OleDb.OleDbDataReader
dr1 = cm1.ExecuteReader()
Do While dr1.Read
flag = True
Loop
If flag = True Then
MessageBox.Show([Ô]Você já está cadastrado[Ô])
Else
[ô]Aqui não é erro e sim não encontrado o e-mail no cadastro
End If
dbcon.Close()
dr1.Close()
Catch ex As Exception
MessageBox.Show(ex.Message) [ô]Aqui é erro
End Try
Depois que você corrigiu o seu código nos mostre como você escreveu o mesmo! E não me leve a mau, mas não adianta você enviar o projeto para os amigos do fórum você precisa aprender fazer!
Mas lembre-se no meu código acima coloquei uma expressão string.Format para que você veja que existe apóstofro na claúsula WHERE do SELECT.
Pesquise sobre string.Format in vb.net esse método pode lhe ajudar!
A mensagem mostra duas vezes, pois você apresenta ela dentro do WHILE e deve estar retornando mais de um registro no SELECT
O que o amigo OMAR2011 está querendo dizer é que uma chave primária geralmente é um campo número e você está passando um texto para validar como número!
De fato isso não vai funcionar, portanto o que você precisa fazer é o seguinte, ou seja, seguinte o método do OMAR2011.
Primeiro nos mostre onde ocorre o erro, pois o que o OMAR2011 lhe passou só de ler de fato funciona!
Você está debugando o seu código? Em que linha do código é apresentado o erro para saber isso tire o try catch.
Try
dbcon.Open()
Dim flag As Boolean = False
Dim cod As String = TextBox13.Text
Dim sqll As String = String.Format([Ô]SELECT * FROM Cad_Cliente where Email =[ô]{0}[ô] [Ô], cod)
Dim cm1 As New OleDb.OleDbCommand(sqll, dbcon)
Dim dr1 As OleDb.OleDbDataReader
dr1 = cm1.ExecuteReader()
Do While dr1.Read
flag = True
Loop
If flag = True Then
MessageBox.Show([Ô]Você já está cadastrado[Ô])
Else
[ô]Aqui não é erro e sim não encontrado o e-mail no cadastro
End If
dbcon.Close()
dr1.Close()
Catch ex As Exception
MessageBox.Show(ex.Message) [ô]Aqui é erro
End Try
Depois que você corrigiu o seu código nos mostre como você escreveu o mesmo! E não me leve a mau, mas não adianta você enviar o projeto para os amigos do fórum você precisa aprender fazer!
Mas lembre-se no meu código acima coloquei uma expressão string.Format para que você veja que existe apóstofro na claúsula WHERE do SELECT.
Pesquise sobre string.Format in vb.net esse método pode lhe ajudar!
A mensagem mostra duas vezes, pois você apresenta ela dentro do WHILE e deve estar retornando mais de um registro no SELECT
O botão inteiro está assim
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox2.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Endereço[Ô])
Me.Focus()
End If
If TextBox3.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Ano de matrÃcula[Ô])
Me.Focus()
End If
If TextBox4.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Digite uma senha[Ô])
Me.Focus()
End If
If TextBox5.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Confirmar senha[Ô])
Me.Focus()
End If
If TextBox6.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Nome[Ô])
Me.Focus()
End If
If TextBox7.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Cidade[Ô])
Me.Focus()
End If
If TextBox8.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Bairro[Ô])
Me.Focus()
End If
If TextBox9.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Celular[Ô])
Me.Focus()
End If
If TextBox10.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Telefone[Ô])
Me.Focus()
End If
If TextBox11.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Cep[Ô])
Me.Focus()
End If
If TextBox12.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo PaÃs[Ô])
Me.Focus()
End If
If TextBox13.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Email[Ô])
Me.Focus()
End If
If TextBox14.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Rg[Ô])
Me.Focus()
End If
If TextBox15.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Idade[Ô])
Me.Focus()
End If
Dim sql As String
sql = [Ô]insert into Cad_Cliente (RG,Nome,Idade,Email,Endereço,Cidade,Bairro,CEP,PaÃs,Telefone,Celular,Ano_Matric,N_Cad,Senha,Confirmar_senha) values (@RG, @Nome,@Idade,@Email,@Endereço,@Cidade,@Bairro,@CEP,@PaÃs,@Telefone,@Celular,@Ano_Matric,@N_Cad,@Senha,@Confirmar_senha)[Ô]
Dim cm As New OleDbCommand(sql, dbcon)
cm.Parameters.AddWithValue([Ô]@RG[Ô], TextBox14.Text)
cm.Parameters.AddWithValue([Ô]@Nome[Ô], TextBox6.Text)
cm.Parameters.AddWithValue([Ô]@Idade[Ô], TextBox15.Text)
cm.Parameters.AddWithValue([Ô]@Email[Ô], TextBox13.Text)
cm.Parameters.AddWithValue([Ô]@Endereço[Ô], TextBox2.Text)
cm.Parameters.AddWithValue([Ô]@Cidade[Ô], TextBox7.Text)
cm.Parameters.AddWithValue([Ô]@Bairro[Ô], TextBox8.Text)
cm.Parameters.AddWithValue([Ô]@CEP[Ô], TextBox11.Text)
cm.Parameters.AddWithValue([Ô]@PaÃs[Ô], TextBox12.Text)
cm.Parameters.AddWithValue([Ô]@Telefone[Ô], TextBox10.Text)
cm.Parameters.AddWithValue([Ô]@Celular[Ô], TextBox9.Text)
cm.Parameters.AddWithValue([Ô]@Ano_Matric[Ô], TextBox3.Text)
cm.Parameters.AddWithValue([Ô]@N_Cad[Ô], TextBox1.Text)
cm.Parameters.AddWithValue([Ô]@Senha[Ô], TextBox4.Text)
cm.Parameters.AddWithValue([Ô]@Confirmar_senha[Ô], TextBox5.Text)
Try
dbcon.Open()
cm.ExecuteNonQuery()
dbcon.Close()
MessageBox.Show([Ô]Usuário cadastrado[Ô])
Button2.Visible = True
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]Erro ao cadastrar[Ô])
End Try
dbcon.Close()
Dim cod As String
cod = TextBox2.Text
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email =[ô][Ô] & TextBox13.Text & [Ô][ô][Ô]
[ô]Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email =[ô][Ô] & cod & [Ô][ô][Ô]
Dim cm1 As New OleDb.OleDbCommand(sqll, dbcon)
Dim dr1 As OleDb.OleDbDataReader
Dim flag As Boolean
Try
dbcon.Open()
dr1 = cm1.ExecuteReader
If dr1.HasRows Then
While dr1.Read
If dr1.Item([Ô]Email[Ô]) = cod Then
flag = True
MessageBox.Show([Ô]Você já é cadastrado, caso ão consiga entrar, por favor, acessar a opção recuperar senha na página de login[Ô])
End If
End While
End If
If flag = False Then
MessageBox.Show([Ô]Ocorreu algum erro[Ô])
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
dbcon.Close()
o código do que eu preciso é esse funcionando, FALANDO QUE O CARA N PODE CRIAR OUTRA CONTA POIS TEM UM EMAIL REPETIDO
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email =[ô][Ô] & TextBox13.Text & [Ô][ô][Ô]
[ô]Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email =[ô][Ô] & cod & [Ô][ô][Ô]
Dim cm1 As New OleDb.OleDbCommand(sqll, dbcon)
Dim dr1 As OleDb.OleDbDataReader
Dim flag As Boolean
Try
dbcon.Open()
dr1 = cm1.ExecuteReader
If dr1.HasRows Then
While dr1.Read
If dr1.Item([Ô]Email[Ô]) = cod Then
flag = True
MessageBox.Show([Ô]Você já é cadastrado, caso ão consiga entrar, por favor, acessar a opção recuperar senha na página de login[Ô])
End If
End While
End If
If flag = False Then
MessageBox.Show([Ô]Ocorreu algum erro[Ô])
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
dbcon.Close()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox2.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Endereço[Ô])
Me.Focus()
End If
If TextBox3.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Ano de matrÃcula[Ô])
Me.Focus()
End If
If TextBox4.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Digite uma senha[Ô])
Me.Focus()
End If
If TextBox5.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Confirmar senha[Ô])
Me.Focus()
End If
If TextBox6.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Nome[Ô])
Me.Focus()
End If
If TextBox7.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Cidade[Ô])
Me.Focus()
End If
If TextBox8.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Bairro[Ô])
Me.Focus()
End If
If TextBox9.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Celular[Ô])
Me.Focus()
End If
If TextBox10.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Telefone[Ô])
Me.Focus()
End If
If TextBox11.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Cep[Ô])
Me.Focus()
End If
If TextBox12.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo PaÃs[Ô])
Me.Focus()
End If
If TextBox13.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Email[Ô])
Me.Focus()
End If
If TextBox14.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Rg[Ô])
Me.Focus()
End If
If TextBox15.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Preencha o campo Idade[Ô])
Me.Focus()
End If
Dim sql As String
sql = [Ô]insert into Cad_Cliente (RG,Nome,Idade,Email,Endereço,Cidade,Bairro,CEP,PaÃs,Telefone,Celular,Ano_Matric,N_Cad,Senha,Confirmar_senha) values (@RG, @Nome,@Idade,@Email,@Endereço,@Cidade,@Bairro,@CEP,@PaÃs,@Telefone,@Celular,@Ano_Matric,@N_Cad,@Senha,@Confirmar_senha)[Ô]
Dim cm As New OleDbCommand(sql, dbcon)
cm.Parameters.AddWithValue([Ô]@RG[Ô], TextBox14.Text)
cm.Parameters.AddWithValue([Ô]@Nome[Ô], TextBox6.Text)
cm.Parameters.AddWithValue([Ô]@Idade[Ô], TextBox15.Text)
cm.Parameters.AddWithValue([Ô]@Email[Ô], TextBox13.Text)
cm.Parameters.AddWithValue([Ô]@Endereço[Ô], TextBox2.Text)
cm.Parameters.AddWithValue([Ô]@Cidade[Ô], TextBox7.Text)
cm.Parameters.AddWithValue([Ô]@Bairro[Ô], TextBox8.Text)
cm.Parameters.AddWithValue([Ô]@CEP[Ô], TextBox11.Text)
cm.Parameters.AddWithValue([Ô]@PaÃs[Ô], TextBox12.Text)
cm.Parameters.AddWithValue([Ô]@Telefone[Ô], TextBox10.Text)
cm.Parameters.AddWithValue([Ô]@Celular[Ô], TextBox9.Text)
cm.Parameters.AddWithValue([Ô]@Ano_Matric[Ô], TextBox3.Text)
cm.Parameters.AddWithValue([Ô]@N_Cad[Ô], TextBox1.Text)
cm.Parameters.AddWithValue([Ô]@Senha[Ô], TextBox4.Text)
cm.Parameters.AddWithValue([Ô]@Confirmar_senha[Ô], TextBox5.Text)
Try
dbcon.Open()
cm.ExecuteNonQuery()
dbcon.Close()
MessageBox.Show([Ô]Usuário cadastrado[Ô])
Button2.Visible = True
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]Erro ao cadastrar[Ô])
End Try
dbcon.Close()
Dim cod As String
cod = TextBox2.Text
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email =[ô][Ô] & TextBox13.Text & [Ô][ô][Ô]
[ô]Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email =[ô][Ô] & cod & [Ô][ô][Ô]
Dim cm1 As New OleDb.OleDbCommand(sqll, dbcon)
Dim dr1 As OleDb.OleDbDataReader
Dim flag As Boolean
Try
dbcon.Open()
dr1 = cm1.ExecuteReader
If dr1.HasRows Then
While dr1.Read
If dr1.Item([Ô]Email[Ô]) = cod Then
flag = True
MessageBox.Show([Ô]Você já é cadastrado, caso ão consiga entrar, por favor, acessar a opção recuperar senha na página de login[Ô])
End If
End While
End If
If flag = False Then
MessageBox.Show([Ô]Ocorreu algum erro[Ô])
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
dbcon.Close()
o código do que eu preciso é esse funcionando, FALANDO QUE O CARA N PODE CRIAR OUTRA CONTA POIS TEM UM EMAIL REPETIDO
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email =[ô][Ô] & TextBox13.Text & [Ô][ô][Ô]
[ô]Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email =[ô][Ô] & cod & [Ô][ô][Ô]
Dim cm1 As New OleDb.OleDbCommand(sqll, dbcon)
Dim dr1 As OleDb.OleDbDataReader
Dim flag As Boolean
Try
dbcon.Open()
dr1 = cm1.ExecuteReader
If dr1.HasRows Then
While dr1.Read
If dr1.Item([Ô]Email[Ô]) = cod Then
flag = True
MessageBox.Show([Ô]Você já é cadastrado, caso ão consiga entrar, por favor, acessar a opção recuperar senha na página de login[Ô])
End If
End While
End If
If flag = False Then
MessageBox.Show([Ô]Ocorreu algum erro[Ô])
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
dbcon.Close()
Aparecem 2 mensagens de erro com esse código e n exibe a que eu quero, falando que tem um email já cadastrado, e ele já tem uma conta
a 1 imagem
a 1 imagem
Tópico encerrado , respostas não são mais permitidas