0

データベース全体を検索し、DataGridView コントロールに検索文字列を含むデータベースで見つかったレコードのリストをユーザーに返す検索機能を実装する必要がある vb.net でデータベース アプリケーションを作成しています。

「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" をバインドできませんでした」。

検索機能を実装できるように、デバッグを手伝うか、新しいコードを提案してください。

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 は名前、電話番号、住所などのさまざまな ccolumn 名をリストするリスト ボックスであり、colvalues は検索文字列を入力したテキスト ボックスの名前です。

于 2013-08-25T08:06:52.847 に答える