プロが教えるわが家の防犯対策術!

VB.NETですが、
DataSet.Tables(0).LoadDataRow()でデータの更新をしたいのですが
DBに登録されません。なぜでしょうか
以下の手順の処理で問題があるのでしょうか?

以下ソース

pAddUpdList(0) = "2"
pAddUpdList(1) = "2"
pAddUpdList(2) = "col1data"
pAddUpdList(3) = "col2data"

f(ここでwDataSet.Tables(0)のプライマリーキーの設定処理)

wDataSet.Tables(0).BeginLoadData()

Dim myRow As DataRow
myRow = wDataSet.Tables(0).LoadDataRow(pAddUpdList, True)

wDataSet.Tables(0).EndLoadData()

' ここの時点でwDataSetはちゃんと更新されているのですが
f(ここでOleDbDataAdapter.Update(wDataSet):DBアップデート処理)
'しかしDBに反映されてない
------
LoadDataRowでネットを検索してみたのですが、ヒットするものがあまりありません。
サンプルなどがあれば教えていただきたいのですが。

A 回答 (1件)

OleDbDataAdapterの"UpdateCommand"プロパティは設定されていますか?

この回答への補足

"UpdateCommand"プロパティはNothingです。

更新処理は

Dim Adapter As OleDbDataAdapter = New OleDbDataAdapter(SQL文, New OleDbConnection(コネクション文字列))

Dim SQLBuilder As OleDbCommandBuilder = New OleDbCommandBuilder(Adapter)

Adapter.Update(DataSet)

というような感じです。New OleDbCommandBuilderが利いてるんじゃないかと思うのですが。

補足日時:2005/05/25 18:15
    • good
    • 0
この回答へのお礼

myRow = wDataSet.Tables(0).LoadDataRow(pAddUpdList, True)
のところを
myRow = wDataSet.Tables(0).LoadDataRow(pAddUpdList, False)
に変えるだけで更新できてしまったのですが、MSDNをみると、
変更を受け入れる場合は true 。それ以外の場合は false 。
と書いてあるのでFalseにすると変更されないのかと思っていましたが・・・、myRow.RowStateがModifiedになってうまくUpdateされてしまいます。なぜなんでしょうか?説明できる方お願いいたします。

お礼日時:2005/05/26 09:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!