Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fiz uma pequena Login Form baseado em um vídeo do YouTube, mas quero complementá-la.
Queria depois que checado o usuário e ele for válido, checar uma coluna, e se o resultado dessa coluna for maior que 1 ele aceita, se não, ele dá um erro..
Dim conn As MySqlConnection
'connect to DB
conn = New MySqlConnection()
conn.ConnectionString = "server=108.170.59.190; user id=root; password=123mudar; database=proxy"
'see if connection failed
Try
conn.Open()
Catch myerror As MySqlException
MsgBox("Error connecting to database")
End Try
'sql query
Dim myAdapter As New MySqlDataAdapter
Dim sqlquery = "SELECT * FROM login WHERE username = '" + txtEmail.Text + "' AND password = '" + txtSenha.Text + "'"
Dim myCommand As New MysqlCommand()
myCommand.Connection = conn
myCommand.CommandText = sqlquery
'start query
myAdapter.SelectCommand = myCommand
Dim myData As MySqlDataReader
myData = myCommand.ExecuteReader()
'see if user exists
If myData.HasRows = 0 Then
MsgBox("Invalid Login!")
Else
MsgBox("Login Accepted!")
Form1.Show()
Me.Hide()
End IfPor exemplo:
If myData.HasRows = 0 Then
MsgBox("Invalid Login!")
Else
MsgBox("Login Accepted!")
Form1.Show()
Me.Hide()
Seria assim, se o login for aceito, ele checaria a coluna "days", se essa days fosse > 1 então ele colocaria a coluna online = 1. Entendeu?
Algo como
Se user == senha
Então se user tiver days > 1
Então online = 1
Form1.Show()
Me.Hide()
Senão
Login inválido
Use o <code> por favor na hora de escrever códigos no post.
Faça assim:
Eu fiz este teste aqui rapido no meu VB 2010, mas não tenho o MySQL aqui então não sei se tudo vai funcionar ai:
Dim conn As MySqlConnection
'connect to DB
conn = New MySqlConnection()
conn.ConnectionString = "server=108.170.59.190; user id=root; password=123mudar; database=proxy"
'see if connection failed
Try
conn.Open()
Catch myerror As MySqlException
MsgBox("Error connecting to database")
End Try
/sql query
Dim myAdapter As New MySqlDataAdapter
/------------
Dim myds As New DataSet
/---------
Dim sqlquery = "SELECT * FROM login WHERE username = '" + txtEmail.Text + "' AND password = '" + txtSenha.Text + "'"
/------------
Dim myCommand As New MysqlCommand(sqlquery, conn)
/----------------
/start query
myAdapter.SelectCommand = myCommand
/ --------------
myAdapter.Fill(myds)
/-----------------
/see if user exists
/-------------
If myds.Table("nome da tabela").Rows.Count <= 0 Then
/------------
MsgBox("Invalid Login!")
Else
MsgBox("Login Accepted!")
Form1.Show()
Me.Hide()
End If
Coloquei as partes que eu alterei entre "--------" para ficar mais fácil, neste exemplo eu criei um dataset que retornaria o valor de registros na coluna, veja se vai.
Mas e a checagem se o usuário existe? Se existe o usuário e/ou senha?
E outra, você fez checagem por tabela, eu queria uma checagem de uma coluna que estivesse na tabela login.. compreende?
Checagem se o usuário existe:
If myds.Table("nome da tabela").Rows.Count <= 0 Then
MsgBox("Invalid Login!")
Else
MsgBox("Login Accepted!")
Form1.Show()
Me.Hide()
End If
Se tiver linhas significa que ele existe.
Para saber uma coluna faça simplesmente
if myds.Table("nome da tabela").Rows(indice da linha).Item("Nome da coluna").toString() = <condição> then
Alem disso tudo que você fez você quer checar uma coluna e ver se o valor dela é 1? Qual o nome dessa coluna?