SSブログ

DataSetのMergeを使ってみました。 [.NET]

普段はデータクラスを作成してDataTableから自前でバインドしてるんですが、
DataSetを使った非接続型アクセスについて何も知らなかったので勉強してみました。
で調べてみたら、DataSet内容のマージとか色々出来るじゃないですか。
これは最新データへの置き換えとかに便利そうなのでちょっと試してみました。

まずはマージをして見ます。
CType(hoge.DataSource, DataSet).Merge(dataSet)

なんかデータが倍に増えてるんですが。。。
Unique Keyが無視されてます。

ありましたDataTableのPrimaryKeyプロパティが空みたいです。
スキーマ情報はDataTableにセットしてくれないのでしょうか?

しょうがないのでPrimaryKeyは自分でセットしました。
Dim dataColumn(1) As DataColumn
dataColumn(0) = dataSet.Tables(hogeTable).Columns(0)
dataColumn(1) = dataSet.Tables(hogeTable).Columns(1)
dataSet.Tables(hogeTable).PrimaryKey = dataColumn

こんどは一意制約違反が発生しました。
重複クエリでデータを調べてみましたが、重複は無いようです。。。

あれこれやって2時間経過〜
あ〜っ 小文字のキーがあるじゃんかよ。しかも一個だけ。
なんだよそれ orz

はいはい。大文字と小文字を区別すれば良い訳ですね。
dataSet.Tables(hogeTable).CaseSensitive = True

そんな訳で無駄な時間を使いましたがマージはうまく行きました。
残念なのがODP.NETだとTableAdapterって奴が使用出来ないみたいです。
(普段ODP.NETを使っているので)


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:[必須]
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。