在数据库应用程序中实现搜索功能

时间:2013-08-24 06:25:21

标签: sql-server database vb.net ado.net

我正在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”)):“多部分标识符”System.Data.DataRowView“无法绑定”。

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

1 个答案:

答案 0 :(得分:-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是我输入搜索字符串的文本框的名称。