Мой код Oledb DataAdapter.Fill - «отсутствующие параметры» - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь настроить страницу входа, которая проверяет учетные данные пользователя из базы данных 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 параметров. Может кто-нибудь объяснить это?

...