DOBON.NET DOBON.NETプログラミング掲示板過去ログ

データグリッド指定行への挿入

環境/言語:[VB.NET]
分類:[.NET]

データグリッドの指定行への挿入を行いたいです。
 
 テーブル"ProductSchedule"へcurPos位置へInsertRowを挿入
  Ds.ProductSchedule.Rows.InsertAt(InsertRow, curPos)
 DB更新
  daSch.Update(Ds)
更新をコミット
  Ds.ProductSchedule.AcceptChanges()
 とすることで、関連付けられているデータグリッドへは
 curPosの位置へ挿入されますが、

  この行のとあるカラムの値(Integer列のインクリメント)
 を更新しようとすると、インスタンスが生成されていないと
 出てしまいます。

  そもそも、データグリッドで指定行への挿入は、できないない
 のでしょうか?AcceptChangesを直後に行わなければ、最終行
 に追加されますし…
  市販のツールではなく、.netFrameworkの標準アイテムで他に
 何がありますか?ListViewは、背景色を変更する度に、ちらつく
 ので使用したくありません。よろしくお願いします。
Ds.ProductSchedule.Rows.InsertAt(InsertRow, curPos)によって、確かにその位置に行が挿入されます。しかし、これはあくまでデータテーブル上でです。
daSch.Update(Ds)
することにより、データアダプタは新規に挿入された行を見つけ、データベースにUpdate文を投げます。つまり、データベースのテーブル上ではあくまで一番下に追加されます。

もう一つ、データグリッド上で表示されているのはデータテーブルのデフォルトビューです。データテーブルがそのまま表示されているのではありません。データグリッドで指定の行位置に表示したければ、ソートされたデータビューをデータソースに割り当てる必要があります。
回答ありがとうございます。
やはりそうですか…
っということは、例えば、datatable上に
”RowNo”とかいうカラムを用意して、テーブル上
のインデックスを割り付け、挿入、削除の度に更新
して、データビューでソートしてやれば良いのです
よね。でも、画面が、ちらっと変化するのが嫌なん
ですよね〜。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板