2009年4月9日木曜日

【VB】変更の種類を変更してデータベースを更新する

「3行目の値を変更する」のみをUpdateする。
他の「1から2行目を削除」「新しくレコードを追加する」は反映されない例。

'削除
OrderDataSet.Goods(0).Delete()
OrderDataSet.Goods(1).Delete()

'値の変更(今回はこれが適用)
OrderDtaset.Goods(2).GoodsName="つやつや"

'追加
dim dr as OrderDataSet.GoodsRow
dr=OrderDataSet.Goods.newFoodsRow
dr.GoodsID ="Z0002"
dr.GoodsName = "花粉撃退マスク"
dr.price = 500
OrderDataSet.goods.Rows.add(dr)

'値を変更した行を取得
dim tb as DataTable
tb = OrderDataset.Goods.GetChanges(DataRowState.Modified)

'データベースを更新
goodsTabeleAdapter.Update(tb)
Messagebox.show("更新しました")


ポイント
tb = OrderDataset.Goods.GetChanges(DataRowState.Modified)
のModifiedが編集された行という意味

その他の状態一覧
  • 1Detached
    作成した後、DataRowCollectionに追加されていない行

  • 2Unchanged
    編集されていない行

  • 4Added
    追加された行

  • 8Deleted
    削除された行

  • 16Modified
    編集された行