首页 > 解决方案 > 搜索 MS Access 并在 VB.Net 文本框中显示

问题描述

请协助。我想从 MS Access 表中搜索 ID 号。如果该 ID 号存在,我必须显示具有 的人的名字、姓氏、性别和出生日期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:“没有为一个或多个必需参数提供值。”

标签: vb.netms-access-2007

解决方案


我确实是对的,请参见下面的代码:

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

推荐阅读