この質問は何百万回も聞かれましたが、そこから多くのアドバイスを使用していますが、それでもまだ動作しません。ここに私の試行です:DataGridViewのソースをリフレッシュできません
私はinciViewの変更を見ることができます "この"フォームを閉じて開いているときのみ。なぜこのハードリフレッシュ(メソッドのnoone)がうまくいかないのですか?それをリフレッシュする方法は?
データセットを何とか更新する必要があると思います。
この質問は何百万回も聞かれましたが、そこから多くのアドバイスを使用していますが、それでもまだ動作しません。ここに私の試行です:DataGridViewのソースをリフレッシュできません
私はinciViewの変更を見ることができます "この"フォームを閉じて開いているときのみ。なぜこのハードリフレッシュ(メソッドのnoone)がうまくいかないのですか?それをリフレッシュする方法は?
データセットを何とか更新する必要があると思います。
動作する二つのアプローチがあります。
は、あなたがそれを開くためにShowDialog()を使用してデータのモーダルを編集するために使用するフォームを作成します。 ShowDialog()
の呼び出しの後、再クエリにコードを追加し、DataGridViewをデータソースに再バインドします。
データベースが更新されたことをリスナーに通知するイベントをデータ入力フォームに追加します。データ入力フォームを開くフォームは、このイベントと、イベントがクエリーを起動してDGVを再バインドしたときに実行されるコードをサブスクライブします。
私は再クエリを言うと、あなたのDGVを再バインドするとき、私はあなたが(つまり、データベースを照会し、データソースを設定する)あなたのDGVにデータをロードするために、今やっているものは何でも意味。
最初のアプローチでは、データ入力フォームをモーダルに表示すると、ユーザーがデータ入力フォームを使用するまで、メインフォームの実行が効果的に停止されます。データ入力フォームには、キャンセルするのではなくユーザーが変更を加えたかどうかを示すDialogResultを返すこともできます。もしそうなら(例えば、DialogResult.OK
がデータ入力フォームから返された)、DGVリフレッシュコードを実行することができます。
2番目のアプローチでは、データ入力フォームで、データが更新されたことをユーザーに伝えます。コントロールは、これが役立つかもしれないデータベース にバインドされていることを前提と
、データセットデザイナから
:
追加:
myDataSet.AcceptChanges();
myBindingSource.EndEdit();
myTableAdapter.Fill(myDataSet.Table1);
バウンドコントロールが自動的に更新されます。
最初の2つのステートメントは重複する可能性がありますが、それは私のために働く。 :)
私は人々がまだ年前の質問に答えているときは好きです:)真剣に – Cynede
私に何かが不足していますか? DataBindを目的に応じて呼び出さないのですか? – Fellmeister
@Fellmeister DataBindを呼び出す必要がありますか? ) – Cynede
あなたは何を達成しようとしていますか? FormClosedイベントでDatabindingコードを追加しましたか? – Anuraj