タイトル : Re^2: データの更新結果をデータグリッドに反映したい 投稿日 : 2012/06/15(Fri) 08:54 投稿者 : かっちゃん
> > データの更新結果をデータグリッドに即、反映したい > 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 に格納済みなデータなら、再度読み込み直す…という選択肢も。 魔界の仮面弁士様 いつもありがとうございます。 今まで、VB6.0を使っており、今回初めてVS2010によるVBへ変換している最中です System.Windows.Forms.DataGrid は System.Windows.Forms.DataGridView に変更しました。 現時点ではADO.NETがわからない状態ですので 理解するのに、もう少し時間がかかると思います。 よろしくお願いいたします。 |