Я пытаюсь настроить страницу входа, которая проверяет учетные данные пользователя из базы данных MS Access. Когда я запускаю код, он говорит, что метод fill нуждается в одном или нескольких параметрах. Вот код, который я использую:
Public Class login
Public Shared dslogin As New DataSet
Public Shared con As New OleDb.OleDbConnection
Dim da1 As New OleDb.OleDbDataAdapter
'Global variables
Public Shared currentloginID As Integer = 0
Public Shared tbusername As TextBox
Public Shared tbpassword As TextBox
Private Function OpenDBConnection1()
Dim directory1 As String = My.Computer.FileSystem.SpecialDirectories.MyDocuments
Return "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source = " & directory1 & "\IEshiDBv1.accdb"
End Function
'login button
Private Sub btnLOGIN_Click(sender As Object, e As EventArgs) Handles btnLOGIN.Click
Dim username As String = txtusername.Text
Dim password As String = txtpassword.Text
If username = "" Or password = "" Then
MsgBox("Please enter log-in details")
con.Close()
Exit Sub
Else
Dim sqllogin As String = ("SELECT * FROM LoginRcrds WHERE LoginUserName = " & username)
da1 = New OleDb.OleDbDataAdapter(sqllogin, con)
da1.Fill(dslogin, "LoginCredentials")
con.Close()
Dim dtlogin As DataTable = dslogin.Tables("LoginCredentials")
Dim rowlogin As DataRow
For Each rowlogin In dtlogin.Rows
If password = rowlogin("LoginPW") Then
homepage.Show()
Me.Hide()
Exit For
End If
Next
MsgBox("Incorrect log-in credentials. Please try again")
Exit Sub
End If
End Sub
'Onload subroutine
Private Sub login_Load(sender As Object, e As EventArgs) Handles MyBase.Load
con.ConnectionString = (OpenDBConnection1())
con.Open()
End Sub
Конечный класс
Ошибка возникает на
da1.Fill(dslogin, "LoginCredentials")
и сообщение об ошибке гласит: «Для одного или нескольких обязательных параметров не задано значение».
Я где-то читал, что. Для заполнения требуется три параметра: (DataSet, RecordSet, TableName). Я никогда не пробовал этого, потому что я не понимаю, что означает RecordSet.
Редактировать: я проверил другую программу с поставщиком 4.0 Oledb и изменил ее на 12.0. Появилась такая же ошибка. Похоже, что метод Fill DataAdapter из Oledb 12.0 требует более 2 параметров. Может кто-нибудь объяснить это?