теперь у меня есть проблема, и я не могу решить свою проблему. У меня есть локальная база данных .SDF и попытка создать базу данных учетной записи входа, в которой есть много пользователей и пароль, а также ограничение для администратора и пользователей.Найти строку в соответствии с вводом текстового поля
У меня есть класс с именем SQLControl и это код
Imports System.Data.SqlServerCe
Public Class SQLControl
#Region "Main Declaration"
Dim SQLConn As SqlCeConnection
Dim SQLConnString As String = "Data Source=AdmApotikDatabase.sdf"
Dim SQLCmd As SqlCeCommand
Dim SQLAdapter As SqlCeDataAdapter
Dim SQLTable As DataTable
#End Region
Public Sub LoadData(NewCmdSelect As String)
Try
SQLConn = New SqlCeConnection
SQLCmd = New SqlCeCommand
SQLConn.ConnectionString = SQLConnString
SQLCmd.Connection = SQLConn
SQLCmd.CommandText = NewCmdSelect
SQLAdapter = New SqlCeDataAdapter(SQLCmd)
SQLTable = New DataTable
SQLConn.Open()
SQLAdapter.Fill(SQLTable)
SQLConn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Sub AddData(NewCmdAdd As String)
Try
SQLConn = New SqlCeConnection
SQLCmd = New SqlCeCommand
SQLConn.ConnectionString = SQLConnString
SQLCmd.Connection = SQLConn
SQLCmd.CommandText = NewCmdAdd
SQLConn.Open()
SQLCmd.ExecuteNonQuery()
SQLConn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Sub EditData(NewCmdEdit As String)
Try
SQLConn = New SqlCeConnection
SQLCmd = New SqlCeCommand
SQLConn.ConnectionString = SQLConnString
SQLCmd.Connection = SQLConn
SQLCmd.CommandText = NewCmdEdit
SQLConn.Open()
SQLCmd.ExecuteNonQuery()
SQLConn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Sub FreeCmd(NewCmdFree As String)
Try
SQLConn = New SqlCeConnection
SQLCmd = New SqlCeCommand
SQLConn.ConnectionString = SQLConnString
SQLCmd.Connection = SQLConn
SQLCmd.CommandText = NewCmdFree
SQLConn.Open()
SQLCmd.ExecuteNonQuery()
SQLConn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
Теперь я хочу, чтобы попытаться найти строку в соответствии с тем, что я пишу в «txtUsername» и «txtPassword текстовых полей». Вот мой 'pbLogin' событие нажмите:
Public Class LoginForm
Dim SQLControl As SQLControl
Private Sub pbLogin_Click(sender As Object, e As EventArgs) Handles pbLogin.Click
Dim Username As New String
Dim Password As New String
Dim IsAdmin As New Integer
Dim IsUser As New Integer
If txtUserName.Text <> "" And txtPassword.Text <> "" Then
Dim AdminCmd As String = "SELECT * FROM TabelAkun WHERE " & Username & "='admin' AND " & Password & "='admin' AND " & IsAdmin & "= 1"
SQLControl.FreeCmd(AdminCmd)
If txtUserName.Text = Username And txtPassword.Text = Password Then
SQLControl.LoadData("")
MainWindows.pbAbout.Visible = True
MainWindows.pbAccount.Visible = True
MainWindows.pbDataObat.Visible = True
MainWindows.pbDataSuplier.Visible = True
MainWindows.pbDataTransaksi.Visible = True
End If
Else
MsgBox("Tidak boleh kosong !")
End If
End Sub
End Class
Это просто результат 'NullReferenceException' в «SQLControl.FreeCmd (AdminCmd) Это моя таблица называется 'TabelAkun' и это ее столбцы:
Dim Username As New String
Dim Password As New String
Dim IsAdmin As New Integer
Dim IsUser As New Integer
Мне нужно, чтобы кто-то скорректировал мое событие с нажатием кнопки «pbLogin» выше в соответствии с моим классом Sub, спасибо :)
Возможный дубликат [Что такое исключение NullReferenceException и как его исправить?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix- он) – RianBattle