Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
DataTableから新たなDataTableを生成し表示
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30415#CommentId83625
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
さすが
 (社会人)
投稿日時
2019/8/23 18:04:30
魔界の仮面弁士様
いつもたくさんのご回答、誠にありがとうございます。
【投稿日時 2019/8/23 01:30:12】について、取り急ぎご返事いたします。
>実際のコードを見てみない事には何とも言えませんが、おそらくそれは、
>両者が見ている DataTable が、それぞれ別のインスタンスなのだと思います。
そうだとすれば非常におかしいですね。
直前に、dt1(TableNameは"クエリ1")をRemoveし、一度DataSetからdt1を除去し、
そのあとにdt1を再生成し(TableNameは引き続き"クエリ1")、
DataGridViewのDataSourceやDataMenberをNothingにしてから
再びDataSourceをDataSet、DataMemberを"クエリ1"に指定していますのに。
DataSetとDataGridViewの間に、除去する前のデータを格納する場所があるかのようです。
いちおう、このご回答をヒントに、
最初に生成したDataTableの名前を"Query"のように名づけ、
レコード追加後に生成するDataTableの名前を"Query1"のように名づけ変えてみましたところ、
ケース①
DataGridViewのDataSourceやDataMenberをNothingにしてから、
DataSourceをDataSetに指定し、DataMemberにはDataSetにはない"Query"を再び指定してやると、
DataSetビジュアライザにて"Query"は存在せず、"Query1"が存在することを確認しましたが、
エラーなくDataGridViewに"Query"が表示され、あたかも未更新のようになりました。
ケース①-2
DataGridViewのDataSourceやDataMenberをNothingにする、
そこまででデバッグが終わるように書き換えたところ、
DataGridViewは何も表示されないことを確認しました。
ケース②
DataGridViewのDataSourceやDataMenberをNothingにしてから、
DataSourceをDataSetに指定し、新たにDataSetにできた"Query1"をDataMemberに指定してやると、
DataGridViewには"Query1"の内容が表示され、あたかも更新されたようになりました。
レコード更新回数のカウンターをすでにコードに設けていますので、
更新や編集の都度、カウンターを1ずつ増やし、DataTableの名前を"Query" & "カウンター"にしてやるという応用を行えば、
あたかもDataGridViewが更新されたように見えますので、これで解決はするのですが、気持ち悪いです。
ADO.Netにつきましては、時間はかかりそうですが少しずつ学んでいきたいと考えております。
どうぞよろしくお願いします。