0

私はプログラミングが初めてで、MS Access DB 2010 を使用して C# 2010 Express でデータベース アプリケーションを開発しようとしています。

フォームのウィザードを使用して DataGridView と詳細ビューを生成しました。テキストボックスの TextChanged イベントでデータをフィルタリングしています。

レコードをナビゲートすると、詳細ビ​​ューの現在のレコードに従って datagridview もスクロールし、その逆も同様です。

フィルタリングを適用して削除した後、このナビゲーション動作はまったく機能しません (つまり、datagridview は詳細ビューで現在のレコードに従ってスクロールしなくなります)。

どんな助けでも大歓迎です。

ありがとう。

データのフィルタリングに使用するコードは次のとおりです (FilterField はラジオ ボタンのタグ プロパティから取得されます)。

DataView dv = new DataView(personel_csDataSet.Tables["tblData"]);
dv.RowFilter = FilterField + " like '%' + '" + tbFilter.Text + "' + '%' ";
this.tblDataDataGridView.DataSource = dv;
tblDataBindingSource.Filter = FilterField + " like '%' + '" + tbFilter.Text + "' + '%' ";
4

1 に答える 1

0

これは、グリッドと詳細ビューに別のデータソースを設定したためです。tblDataBindingSourceが詳細ビューのデータソースである場合は、それをグリッドのデータソースとして割り当て、別のビューを作成しないでください。

this.tblDataDataGridView.DataSource = tblDataBindingSource;
tblDataBindingSource.Filter = FilterField + "like'%' +'" + tbFilter.Text + "'+'%'";

ところで、データソースをそこに正確に割り当てる必要はありません。最初にそれを行うことができ、フィルターを適用した後にそれを再割り当てする必要はありません。

于 2012-07-18T07:44:22.193 に答える