|
WebSurfer さん
お手数おかけしました。再び申し訳ありません。
やりたい事は再度下記URLに記載いたしました。 http://uploda.cc/img/img52c2b24e9cda2.jpg
検索ボタン押下時のコードは下記になります。
//=============================================================================================== namespace WindowsFormsApplication1 { public partial class Form2 : Form { public Form2() { InitializeComponent(); }
private void table1BindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.table1BindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.testDataSet);
}
private void Form2_Load(object sender, EventArgs e) { // TODO: このコード行はデータを 'testDataSet.table1' テーブルに読み込みます。必要に応じて移動、または削除をしてください。 this.table1TableAdapter.Fill(this.testDataSet.table1);
}
private void button1_Click(object sender, EventArgs e) { DataRow[] foundRows;
if (textBox1.Text != "") { foundRows = this.testDataSet.table1.Select("f1 = '" + textBox1.Text + "'"); table1BindingSource.DataSource = foundRows; } else { //↓↓RowNotInTableExceptionはユーザーコードによってハンドルされませんでした。 //この行はテーブルから削除されており、データは含まれていません。 //BeginEdit() を使うとこの行に新しいデータを作成することができます。というエラーメッセージが表示されます。 this.table1TableAdapter.Fill(this.testDataSet.table1); } } } } //===============================================================================================
このコードを実行すると、検索テキストボックスに「a」を入力し検索ボタンを押下するとf1がaの行が抽出されます。 その後、検索テキストボックスを空にし、検索ボタンを押すとRowNotInTableExceptionエラーが表示されます。
最終的にやりたい事は、テキストボックスが空の場合はFormロード時と同じ状態でデータグリッドビューにデータが表示されてもらいたいです。
テキストボックスにデータを入力して検索ボタンを押下すると、DataTableのSelectメソッドでDataTableにフィルタをかけて、それを BindingSource.DataSourceに紐付けを行っていると思います。 テキストボックスが空であれば、DataTableにSelectメソッドでフィルタをかけていたのを解除して、そのDataTableをBindingSource.DataSourceに 紐付けしたいと思っています。
説明下手で申し訳ありませんが、よろしくお願い致します。
■No69492 (WebSurfer さん) に返信 > ■No69491 (ブルー さん) に返信 >>上記のコードに追加で、textBox1.Textが空であれば下記のコードを試してみましたがうまく結果得られませんでした。 > > 「解決できませんでした」とか「うまく結果得られませんでした」だけでは、回答者 > には何か起こっているのか分からないということを理解いただきたいと思います。 > > たとえば、「メールを送ろうとしましたがうまくいきませんでした、どうしたらいい > のでしょう?」と聞かれても答えようがないですよね。 > > 少なくとも、具体的にどういう結果になったのか、コンパイルできたのか、エラーメ > ッセージなどは出たのか、エラーメッセージが出たのならその詳細は・・・ぐらいは > 書きましょう。 > > それから「全行表示できるようにしたい」とは具体的にどういうことですか? 初期 > 画面に戻すのですか? それとも初期画面は「全行表示」ではないので、SELECT クエ > リを変える必要があるのですか? > > 想像で回答してもいいのですが、想像が違っていると混乱を招くのみです。また回答 > 者にとっても時間の無駄になります。回答者が余計な想像をしなくて済むよう、最初 > から十分な情報を書いていただくようお願いします。
|