none
TableAdapterのUpdateについて RRS feed

  • 質問

  • 既存のデータベースのテーブルがあり、XMLデータを元にテーブルに追加したいと思っています。

    XMLのデータには既存のデータベース上のデータと重複しているデータも、新規追加されたデータもあります。

    以下のように処理を書きました。

     

    StringReader s = new StringReader(xmlText);
      System.Xml.XmlTextReader xml = new System.Xml.XmlTextReader(s);

    myDataSet.ReadXml(xml);

    myTableAdapter().Update(myDataSet.EmployeeTable);

     

    Updateを行うと、新規のデータに関してうまく挿入されないようですが、使い方のどのあたりが

    間違っておりますでしょうか?

    2007年7月7日 4:47

すべての返信

  • ちょっとこれだけでは、はっきり原因がわかりません。うまく挿入されない時に何かメッセージが出ていますでしょうか?
    2007年7月7日 16:28
    モデレータ
  • これだけの情報では読み取りにくい状況ですが、

    通常このような場合は新規のデータはうまく挿入されて、

    更新データはうまく更新されない状態になります。

    DataSet.ReadXmlだとすべて新規データになるはずです。

    重複しているデータはINSERTエラーになると思います。

    DataSet.Merge メソッド で既存データとマージすると正しく処理できます。

     

    2007年7月7日 18:43
  • trapemiyaさん、えむナウさんありがとうございます。解決いたしました。

     

    原因は恥ずかしいのですが、データセットのプライマリキーのAutoIncreamentが設定されていなかったことのようです。

    AutoIncreamentを設定してうまくいきました。

     

    2007年7月9日 2:27