Типизированные DataSets с источниками данных и схемами XML - PullRequest
1 голос
/ 27 ноября 2008

Я написал файл XML-схемы вручную (не используя DataSet Designer в VS) и соответствующий 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, что верно, но все таблицы пусты.

Я что-то упускаю из виду?

UPDATE:

После абсолютно ничего не делать 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

1 Ответ

0 голосов
/ 10 января 2009

Вопрос: правильно ли генерируется код из xsd.exe? Например, можете ли вы использовать сгенерированные DS в коде, создавать DataRows, добавлять их в DataTables и т. Д.?

Если это так, попробуйте заполнить DS вручную, сохраните xml и сравните его с файлом структурированных данных xml, чтобы убедиться, что он имеет такую ​​же структуру.

...