0

我正在 vb.net 中创建一个数据库应用程序,我需要在其中实现一个搜索功能,该功能应该搜索整个数据库并返回用户,其中包含在 DataGridView 控件中包含搜索字符串的数据库中找到的记录列表。

我使用了一个名称为“colNames”的组合框和一个文本框,我们在其中输入搜索名称为“colValues”的搜索字符串。

这是我在单击搜索按钮时使用的代码:

Dim ds As New DataSet

Dim query As String = "select * from customer where " + colNames.SelectedValue.ToString + " LIKE " + "'%" + colValues.Text + "%'"

CustomerTableAdapter.Connection.Open()

Dim adp As New SqlDataAdapter(query, CustomerTableAdapter.Connection.ConnectionString)

adp.Fill(ds, "customer")

CustomerTableAdapter.Connection.Close()

filteredRecords.DataSource = ds

filteredRecords.DataMember = "customer"

上面的代码在第 6 行抛出异常 (adp.Fill(ds, "customer")): "The multi-part identifier "System.Data.DataRowView" could not be bound"。

请帮我调试它或建议一个新代码,以便我可以实现搜索功能。

4

1 回答 1

-1

下面的代码对我有用:

<br><br>Private Sub colValues_TextChanged(sender As Object, e As EventArgs) Handles colValues.TextChanged
<br>Dim ds As New DataSet
<br>Dim query As String = "select * from customer where " + search_by.SelectedItem.ToString + " LIKE " + "'%" + colValues.Text + "%'"
<br>CustomerTableAdapter.Connection.Open()
<br>Dim adp As New SqlDataAdapter(query, CustomerTableAdapter.Connection.ConnectionString)
<br>adp.Fill(ds, "customer")
<br>CustomerTableAdapter.Connection.Close()
<br>filteredRecords.DataSource = ds
<br>filteredRecords.DataMember = "customer"
<br>End Sub

我在搜索框的文本更改事件中编写了整个代码。

在上面的代码中,search_by 是一个列表框,其中列出了各种列名称,例如姓名、电话、地址等,而 colvalues 是我输入搜索字符串的文本框的名称。

于 2013-08-25T08:06:52.847 回答