URGENTE, AJUDA NO VB
Gente preciso de ajuda, urgente, pois no meu projeto, irá ter uma página que o usuário irá se registrar, para um usuário não se registrar mais de uma vez, caso ele esqueça a senha, o campo email será o verificador, se o email estiver cadastrado, ele n poderá fzr o cadastro, aparecendo uma messagebox, só que não está aparecendo a mensagem quando coloco o email repetido, dá um erro e fala que tem um operador faltando
textbox13 é o campo email
N_Cad é a chave primária
Dim cod As String
cod = TextBox13.Text
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where N_Cad =[Ô] & 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()
textbox13 é o campo email
N_Cad é a chave primária
Dim cod As String
cod = TextBox13.Text
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where N_Cad =[Ô] & 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()
TENTA ASSIM:
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where N_Cad =[Ô] & cod & [Ô][Ô]
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where N_Cad =[Ô] & cod & [Ô][Ô]
Não deu, fala que tem um operador faltando
Passa a mensagem de erro completa, operador faltando na express de consulta etc e tal.
Isso acontece por falta de identificação do campo de consulta ou tipo consulta numerico para campo char ou contrario, o campo é numerico ?
Se for texto:
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where N_Cad =[ô][Ô] & cod & [Ô][ô][Ô]
Isso acontece por falta de identificação do campo de consulta ou tipo consulta numerico para campo char ou contrario, o campo é numerico ?
Se for texto:
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where N_Cad =[ô][Ô] & cod & [Ô][ô][Ô]
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where N_Cad =[ô] [Ô] & cod & [Ô] [ô] [Ô]
textbox13 é o campo email
N_Cad é a chave primária
cod = TextBox13.Text
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where N_Cad =[Ô] & cod 'Isto não procede
If dr1.Item([Ô]Email[Ô]) = cod Then
A sua consulta deveria ser.
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email=[ô][Ô] & textbox13.text & [Ô][ô][Ô]
ou
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email =[ô][Ô] & cod & [Ô][ô][Ô]
Você não pode comparar Email com N_Cad .
Teste que vai da certo
N_Cad é a chave primária
cod = TextBox13.Text
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where N_Cad =[Ô] & cod 'Isto não procede
If dr1.Item([Ô]Email[Ô]) = cod Then
A sua consulta deveria ser.
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email=[ô][Ô] & textbox13.text & [Ô][ô][Ô]
ou
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email =[ô][Ô] & cod & [Ô][ô][Ô]
Você não pode comparar Email com N_Cad .
Teste que vai da certo
Não funcionou Omar, o duro é que eu precisava disso...
Passem o face de vcs, que agnt conversae eu passo o projeto pra vcsdarem uma olhada
Funciona sim cabra.
Olhe meu teste usando seu código.
Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
Dim dbcon As New OleDbConnection([Ô]Provider=msdaora;Data Source=XE;Persist Security Info=TRUE;User Id=SYSTEM;Password=xxx;[Ô])
Dim cod As String
cod = TextBox2.Text
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email =[ô][Ô] & TextBox2.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()
End Sub
Olhe meu teste usando seu código.
Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
Dim dbcon As New OleDbConnection([Ô]Provider=msdaora;Data Source=XE;Persist Security Info=TRUE;User Id=SYSTEM;Password=xxx;[Ô])
Dim cod As String
cod = TextBox2.Text
Dim sqll As String = [Ô]SELECT * FROM Cad_Cliente where Email =[ô][Ô] & TextBox2.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()
End Sub
Omar, posso te enviar meu programa para vc dar uma olhada? passo para você tentar? Pois tentei aqui e n estou conseguindo, passe seu emaileu te mando pelo send space
Fiz isso que vc disse e apareceu isso: As alterações não foram satisfatórias já que criaram valores duplicados de Ãndices, logo após aárece a mensagem que era pra aparecer
Tópico encerrado , respostas não são mais permitidas