タイトル : 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 に格納済みなデータなら、再度読み込み直す…という選択肢も。 |