tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: データの更新結果をデータグリッドに反映したい
投稿日: 2012/06/14(Thu) 14:59
投稿者魔界の仮面弁士
> データの更新結果をデータグリッドに即、反映したい
System.Windows.Forms.DataGridView ではなく、
System.Windows.Forms.DataGrid     をお使いなのですか?

.NET 2.0 以降なら、データグリッドではなくデータグリッドビューをお奨めします。
http://msdn.microsoft.com/ja-jp/library/ms171628%28VS.80%29.aspx

それとも、利用しているのは ASP.NET 用の DataGrid サーバーコントロールなのでしょうか?
(ASP.NET 版の DataGrid では Columns.Clear できるが、WinForm 版では利用できない)


> rsALibraryM = New ADODB.Recordset
ADO を併用利用することは、可能な限り避けてください。

今のままだと、ADODB.Connection による接続と、OleDbConnection による接続が
二本張られることになりますし、その上、COM Interop も行われることになります。
ADO.NET に一本化することを 強く お奨めします。

特に adOpenStatic な場合は、カーソル操作が必須というわけでも無いため、
多くの場合、Recordset を ADO.NET の DataTable に置き換える形で移植できるはずです。


どうしても ADO を使うのであれば、PIA を参照設定したうえで、
適宜、Marshal.ReleaseComObject の呼び出しが必要とされる事に
注意してください。Close したり Nothing 代入するだけでは不十分です。

http://support.microsoft.com/kb/321415/ja
》プライマリ相互運用アセンブリを使用する場合、コンパイラでは、
》さまざまな ADO オブジェクトに対して複数のオブジェクト名を使用できます。
》ADO が正常に動作するためには、使用するクラスのクラス名の最後に、
》必ず "Class" という単語が含まれている必要があります。次に例を示します。
》 ADODB.ConnectionClass

》これらのオブジェクトを使用する場合は、この資料で説明した
》ReleaseComObject を使用して、COM で参照が解放されるようにします。


> そのあとデータの更新を実施した結果を
> データグリッド"dgdGrid"にも反映したいのですが
> どのようなロジックを入れたらよいでしょうか
rsALibraryM を使うのではなく、wkDS に対して追加・削除・編集を行い、
その編集結果を wkAdp1 経由で Update するようにしてみてください。

もしくは、wkAdp1.Fill(DataTable, ADODB.Recordset) を用いて、
Recordset 経由で wkDS.Tables("LibraryM") にデータをもってくるとか。

DB に格納済みなデータなら、再度読み込み直す…という選択肢も。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。