请帮助我。我正在尝试使用MS Access数据库进行身份验证。在我的数据库中,有一个名为Doctor的表,该表中有几个字段,但我想用来进行身份验证的字段是DR_ID和DR_Password。
在我的登录表单中,我使用3个控件组合框来指定用户是护士还是医生,以及两个文本框,一个用于user_id,一个用于密码。
当我运行程序并尝试登录时,出现此错误“ System.Data.OleDb.OleDbException:'条件表达式中的数据类型不匹配'。”
Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
Me.Hide()
dbProvider = "PROVIDER= Microsoft.ACE.OLEDB.12.0;"
dbSource = "Data Source = C:\Users\Siyabonga Kubeka\Documents\Academic Folder\Richfield Graduate Institute Of Technology\BSC GUIDES\BSC GUIDES\Semester 2\Programming 512 Tasks\HealthServiceSystem.accdb"
obj_Con.ConnectionString = dbProvider & dbSource
If cmbDrOrNurse.Text = "DOCTOR" Then
sql = "SELECT DR_ID ,DR_Password FROM Doctor WHERE DR_id='" & txbID.Text & "' AND DR_password='" & txbPassword.Text & "'"
cmd = New OleDbCommand(sql, obj_Con)
obj_Con.Open() 'open database
Dim dr As OleDbDataReader = cmd.ExecuteReader
Try
If dr.Read = False Then
MessageBox.Show("Authentication failed...")
Me.Show()
Else
HealthServiceSystemForm.Show()
End If
Catch ex As Exception
MessageBox.Show("Unable To Connect " & ex.ToString)
End Try
obj_Con.Close()
ElseIf cmbDrOrNurse.Text = "NURSE" Then
sql = "SELECT Nurse_ID ,Nurse_Password FROM Nurse WHERE NURSE_ID='" & txbID.Text & "' AND NURSE_PASSWORD='" & txbPassword.Text & "'"
cmd = New OleDbCommand(sql, obj_Con)
obj_Con.Open() 'open database
Dim dr As OleDbDataReader = cmd.ExecuteReader
Try
If dr.Read = False Then
MessageBox.Show("Authentication failed...")
Me.Show()
Else
HealthServiceSystemForm.Show()
End If
Catch ex As Exception
MessageBox.Show("Unable To Connect " & ex.ToString)
End Try
obj_Con.Close()
End If
End Sub
End Class