タイトル : Re: データセットに行を追加 投稿日 : 2003/08/31(Sun) 13:04 投稿者 : しんじ
[OSのVer]:Windows [VBのVer]:VB.NET > [OSのVer]:Windows [VBのVer]:VB.NET > Accsesではやったことが無いので外していたらごめんなさい。 いま環境が無いので詳しいコードは記載できませんが、 私もSQLServer2000とのINSERTで同じようにはまりました。 ADO.NETの仕様でIDENTITI列(ACSESSの場合はオートナンバー型)をADO.NETでインクリメント しようとするとこのような事になります。 ADO.NETでオートナンバーを処理しているのであれば参考にして下さい この事が記載されていたMicrosoftPressのADO.NET(日経BP)のDataAdapterの所に記載されています。 詳細は本屋さんで立ち読みでもしてみてください。 (解決策も記載されています) ※この書籍DB開発者にはかなり使えるので購入しても損はしないと思います。 これが思いつく一点です。 >>データセットに行が追加されてもその行に移動することが出来ないのです。 Datasetの更新が保留になってないでしょうか? hhttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconusingparameterswithdataadapters.asp DataAdapterを使った更新ですが今後の事もありますし、上記URLを参考にしてください。 DataadapterのInsertCommandを使用する方がコードもすっきりするし、ROWプロパティを追わなくて良いのでお勧めです。 (いつでも何処でも指定された行に移動できるのがADO.Net、DATASETオブジェクトの売りでもあります) >>ちなみに、テーブルには項目が多いので、項目数を5つに減らしてテストしたところ、正しく追加されました。 列数を減らしてうまくいくという事はテーブル構造もしくはテーブルを取得する部分のコードが 間違えている可能性が一番高いと思います。 (私的にはこれじゃないかな?とおもっています。) >>データグリッドを使って新規に追加できるかどうか試してみましたが、この場合は上手くいきます。 DATASETの内容をDataGridに取り込んだ時点で両方の繋がりは切れてしまうので 多分Datagridの内容を編集しているだけでDatasetには影響を与えていないと思われます。 もし、リアルタイムで更新できる方法があるのであれば是非教えてください。汗 今私がどうやったらDatagridの変更内容をDatasetに反映できるか(変更を保留にできるか) 調べているところです。これが出来るとDATASETの変更内容を目で監視できるので本当にすばらしいのですが、、、 この開発補助ツールが出来ない故にいつもリモートデバッカでデータの値を調べております。泣 この件が分かる方便乗で申し訳ないですが教えてください。 |