私は確かに典型的な状況です。なぜ私のマージは機能しませんか?
私はDBを持っており、私はデータのXML文書を持っています。私は2を組み合わせてdbを更新したいと思います。
私は、データセットおよび/またはDataTableにDBデータを埋め込み、その構造内のデータを変更すると、私は更新を呼び出すことができ、すべてがうまくいきます。
これは私が持っているものです。
con.Open();
adapter.Fill(ds2, "BASIC");
ds.ReadXmlSchema(@"C:\asis.xsd");
ds.ReadXml("c:\\asis.xml");
// This is the XML data
DataTable loadeddt = ds.Tables["BASIC"];
// This is from the DB
DataTable dbdt = ds2.Tables["BASIC"];
// I want to put the data from xml into the dataset from the DB
dbdt.Merge(loadeddt);
// I want to them put those changes in the db
adapter.Fill(dbdt);
XSDを読み込む前に、タイプが一致しないという例外がありました。
ここでは何も得られませんが、例外はありません。どちらのDataTableも変更を表示せず、どちらもDBを表示しません。
誰もが提案を提供できますか?
私は以下の私が取得更新する最後の行を変更した場合:PRIMARY KEY制約の
違反「PK_BASIC」。オブジェクト 'dbo.BASIC'に重複キーを挿入できません。
私が気づいたのは、.Rows.Countをマージ前/後に実行すると、レコード数が10から20になり、それらを結合しています。マージしていないことに気付きました。アー!
詳細私がdbdt.GetChanges()を呼び出した場合、それは全体のロットを返します。私が変更を受け入れてもそれを更新すれば、何もしません。
私はそれを得ることはありません。どのようにこれはとても難しいことができます、これは典型的な問題でなければなりませんか?私がインポートしようとしているXMLは、調整されているデータセットの「WriteXML」バージョンです。フォーマット上の問題ではないようです。 –