Ich habe einen Fehler mit System.NullReferenceException mysql wählen Sie "COMMAND.CommandText =" Wählen Sie * von Benutzer, wobei Benutzer = @user und pass = @pass "" bei Klick auf die Schaltfläche.VB Net + Mysql + System.NullReferenceException
MysqlConn = New MySqlConnection(ConfigurationManager.ConnectionStrings("Mydb.My.MySettings.Mydb").ToString)
Dim READER As MySqlDataReader
Me.Cursor = Cursors.WaitCursor
MysqlConn.Open()
COMMAND.CommandText = "select * from Users where user= @user and pass= @pass"
COMMAND.Parameters.AddWithValue("@user", If(String.IsNullOrEmpty(TextBox_Username.Text), DBNull.Value, TextBox_Username.Text))
COMMAND.Parameters.AddWithValue("@pass", If(String.IsNullOrEmpty(TextBox_Password.Text), DBNull.Value, TextBox_Password.Text))
COMMAND = New MySqlCommand(COMMAND.CommandText, MysqlConn)
READER = COMMAND.ExecuteReader
Was ist los?
Edit:
Dies ist die vollständige Code-Taste:
MysqlConn = New MySqlConnection(ConfigurationManager.ConnectionStrings("Mydb.My.MySettings.Mydb").ConnectionString)
Dim READER As MySqlDataReader
Me.Cursor = Cursors.WaitCursor
MysqlConn.Open()
COMMAND.CommandText = "select * from Users where user= @user and pass= @pass"
COMMAND.Parameters.AddWithValue("@user", If(String.IsNullOrEmpty(TextBox_Username.Text), DBNull.Value, TextBox_Username.Text))
COMMAND.Parameters.AddWithValue("@pass", If(String.IsNullOrEmpty(TextBox_Password.Text), DBNull.Value, TextBox_Password.Text))
READER = COMMAND.ExecuteReader
Dim count As Integer
count = 0
While READER.Read
count = count + 1
End While
If count = 1 Then
MessageBox.Show("Usuario y Contraseña Correctos")
Dim role As String = READER("tipo")
If role = "Administrador" Then
Inicio.Show()
ElseIf role = "Calidad" Then
Calidad.Show()
ElseIf role = "Almacen" Then
Almacen.Show()
ElseIf role = "Oficina" Then
Oficina.Show()
ElseIf role = "Minas" Then
Minas.Show()
End If
Me.Hide()
ElseIf count > 1 Then
MessageBox.Show("Usuario y Contraseña Duplicados")
Else
MessageBox.Show("Usuario y Contraseña Incorrectos")
End If
MysqlConn.Close()
MysqlConn.Open()
COMMAND.CommandText = "insert into Registro_Login (user,fecha,ip) values (@user,@fecha,@ip)"
COMMAND.Parameters.AddWithValue("@user", If(String.IsNullOrEmpty(TextBox_Username.Text), DBNull.Value, TextBox_Username.Text))
COMMAND.Parameters.AddWithValue("@fecha", If(String.IsNullOrEmpty(Label4.Text), DBNull.Value, Label4.Text))
COMMAND.Parameters.AddWithValue("@ip", If(String.IsNullOrEmpty(Label3.Text), DBNull.Value, Label3.Text))
READER = COMMAND.ExecuteReader
MysqlConn.Close()
Me.Cursor = Cursors.Default
Aber das gleiche Problem
Wo COMMAND Objekt, das Sie definieren:
diese ersetzen? – Sujith
in Public Class Formular Dim MysqlConn Als MySqlConnection Dim-Befehl als MySqlCommand Dim Leser als MySqlDataReader – Jamyz
Highly vermuten, dass Ihr COMMAND Objekt null ist - nicht initialisiert wurde, debuggen bitte und überprüfen, ob – Sujith