1

XML スキーマ ファイルを手動で (VS の DataSet Designer を使用せずに) 作成し、対応する XML ファイルに読み込まれる構造化データを含めました。

xsd.exe プログラムを実行してTyped DataSetクラスを生成しました。全体として、最初は問題ないように見えますが (パブリック クラス メンバーに小文字を使用する方法を無視して)、生成されたクラスを使用する場合は何も起こりません。

MyDataSet set = new MyDataSet();
set.ReadXml( "myData.xml" );

この時点で、MyDataSetクラスの型付きテーブル メンバーはすべて.Count0 です。

奇妙なことに、私は正常DataSetsに動作することもできません:

DataSet set = new DataSet();
set.ReadXmlSchema("mySchema.xsd");
set.ReadXml( "myData.xml");

set.Tables.Countこれは正しいですが、テーブルはすべて空です。

明らかな何かが欠けていますか?

アップデート:

何もしないset.Tables["extra"].Rows.Countと、正しい行数が返されます。しかし、型指定されたデータセットを使用すると、他のすべてが同じであるにもかかわらず、機能しません:

DataSet ds = new DataSet();
ds.ReadXml( packageExamplePath );

System.Console.WriteLine( ds.Tables["extra"].Rows.Count );

Package st = new Package();
st.ReadXml( packageExamplePath );

System.Console.WriteLine( st.Tables["extra"].Rows.Count );

...これをコンソールに出力します:

19

0

4

1 に答える 1

0

質問: xsd.exe のコードは正しく生成されていますか? たとえば、生成された DS をコードで使用したり、DataRow を作成したり、DataTable に追加したりできますか?

その場合は、DS を手動で入力して xml を保存し、構造化された xml データ ファイルと比較して、同じ構造であることを確認してください。

于 2009-01-09T21:06:50.700 に答える