2006/08/11

DataSet WriteXML ReadXML

データベースにある特定のデータを自由に入れ替えできるようにと思い、DataSet の WriteXML と ReadXML を使ってあれこれしていたのですが、はまってしまいました。

数字項目と、文字項目だけからなるテーブルであれば単純に

 dataSet1.WriteXml(filename);

と、

 dataSet1.ReadXml(filename);
 dataAdapter1.Update(dataSet1);

で読み書きができてしまいます。しかしこれに Boolean の項目が追加されたところでハマッテしまいました。タイミング悪くひとつの DataSet に複数のテーブルを登録した場合と被ってしまって、問題の切り分けに丸一日かかってしまいました。

で、解決策は『「スキーマ」も一緒に書き出しておく』でした。書き出し時に

 dataSet1.WriteXml(filename, XmlWriteMode.WriteSchema);

としておくことで、スキーマ情報が付加された XML ファイルが生成されます。これを読み込めば Boolean 項目があってもすんなりと通ります。

0 件のコメント: