- PR -

XMLをDataSetにしたい

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-09-03 08:50
やってみました。エラーになりますね。

引用:

キョウさんの書き込み (2003-09-02 15:20) より:
コード:
DataSet dsHoge = new DataSet();
dsHoge.ReadXml("E:\tmp\sample.xml");




つまり、
DataSetHoge dsHoge = new DataSetHoge();
dsHoge.ReadXml(filename);
ですね?
これを、 
dsHoge.ReadXml(filename, XmlReadMode.IgnoreSchema);
とすると、どうですか?

 第2引数で、データセットに宣言されているものと、ファイルに宣言されているものの、どちらの制約を有効にするか、を指定するようです。IgnoreSchemaを指定すると、データセットですでに宣言されている制約と同じ名前の制約があった場合、無視するようになりますが、これ以外の場合は例外が発生するようです。←相変わらずMSDNが難解なため、私なりの理解です。
キョウ
常連さん
会議室デビュー日: 2003/04/30
投稿数: 49
投稿日時: 2003-09-03 10:27
わざわざやって頂いて、ありがとうございます。

「XmlReadMode.IgnoreSchema」を指定してもエラーでした。
ただ、Jittaさんのアドバイスにヒントを得て、xsdファイルの制約とデータを
単純化してやってみたんですけど、単純化するとエラーにならないんですよね。
エラーになる場合とならない場合が分かれば対処法も分かると思いますので、
そのあたりから攻めてみます。
キョウ
常連さん
会議室デビュー日: 2003/04/30
投稿数: 49
投稿日時: 2003-09-03 10:48
いろいろアドバイス頂いて非常に申し訳なく思います。
別の部分にバグがありました。
既にそのDataSetの中にデータを入れていて、その上でReadXmlしているので
プライマリキーが重複していました。情けない・・・・・・・

#型宣言するDataSetって非常に便利ですね。あまり議論されていませんが。

スキルアップ/キャリアアップ(JOB@IT)