Поиск MS Access и отображение в текстовых полях VB.Net - PullRequest
0 голосов
/ 12 сентября 2018

Пожалуйста, помогите. Я хочу найти идентификационный номер из таблицы MS Access. Если этот идентификационный номер существует, я должен отобразить имя, фамилию, пол и DOB человека с ID = TextBox.Text следующим образом:

Patient_FirstName - txbFirstName
Patient_Surname - txbSurname
Patient_Sex - txbGender
Patient_DOB -txbDOB

Все эти данные содержатся в таблице с именем Patient.

Мой код выглядит следующим образом:

Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
    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"
    conn.ConnectionString = dbProvider & dbSource

    conn.Open()

    Dim dt As New DataTable
    Dim ds As New DataSet
    ds.Tables.Add(dt)
    Dim da As New OleDbDataAdapter

    da = New OleDbDataAdapter("Select * from Patient where ID like '%" & txbIdNumber.Text & "%'", conn)
    da.Fill(dt)

    txbFirstName.DataBindings.Add("Text", dt, "Patient.Patient_First_Name")
    txbSurname.DataBindings.Add("Text", dt, "Patient.Patient_Surname")
    txbDOB.DataBindings.Add("Text", dt, "Patient.Patient_DOB")
    txbGender.DataBindings.Add("Text", dt, "Patient.Patient_Sex")
End Sub

Я получаю эту ошибку, но не могу понять, почему:

System.Data.OleDb.OleDbException: «Не задано значение для одного или нескольких обязательных параметров.»

1 Ответ

0 голосов
/ 13 сентября 2018

Я правильно понял, см. Код ниже:

Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
    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"
    Dim strSql As String = "Select * from Patient where Patient_ID=@PatientID"
    conn.ConnectionString = dbProvider & dbSource
    conn.Open()
    Using cmd As New OleDbCommand(strSql, conn)
        cmd.Parameters.AddWithValue("@PatientID", txbIdNumber.Text)
        Dim reader As OleDbDataReader = cmd.ExecuteReader()
        While reader.Read()
            txbFirstName.Text += reader("Patient_First_Name").ToString()
            txbSurname.Text += reader("Patient_Surname").ToString()
            txbDOB.Text += reader("Patient_DOB").ToString()
            txbGender.Text += reader("Patient_Sex").ToString()
        End While
    End Using
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...