我手工编写了一个XML Schema文件(不使用VS中的DataSet Designer)和一个包含要读入的结构化数据的相应XML文件。
我运行了xsd.exe程序来生成Typed DataSet
类;总的来说,它看起来很好(忽略它如何使用公共类成员的小写),但是当使用生成的类时没有任何反应:
MyDataSet set = new MyDataSet();
set.ReadXml( "myData.xml" );
此时MyDataSet
类的所有类型表成员的.Count
都为0。
勉强,我无法正常DataSets
工作:
DataSet set = new DataSet();
set.ReadXmlSchema("mySchema.xsd");
set.ReadXml( "myData.xml");
set.Tables.Count
返回7,这是正确的,但表格都是空的。
我错过了一些明显的东西吗?
更新:
绝对没有任何事情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
答案 0 :(得分:0)
问题:xsd.exe的代码是否正确生成?例如,您可以在代码中使用生成的DS,创建DataRows,将它们添加到DataTables等吗?
如果是这样,请尝试手动填写DS,保存xml,并与结构化的xml数据文件进行比较,以确保它具有相同的结构。