powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Необходимо заполнить DataTable из XML
8 сообщений из 8, страница 1 из 1
Необходимо заполнить DataTable из XML
    #36549192
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Необходимо заполнить DataTable из XML. Делаю так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
private DataTable GetDataTable()
{
	string strXML="<root><rec id="1" name="rec1"/><rec id="2" name="rec2"/></root>";
        DataTable dt = new DataTable("rec");
        dt.Columns.Add("id", typeof(int));
        dt.Columns.Add("name", typeof(string));
	StringReader xmlT = new StringReader(strXML);
	dt.ReadXml(xmlT);
	return dt;
}
В итоге возвращается DataTable без строк.
Смотрел примеры, везде нужно читать схему. Схему читать нельзя. При этом нужно вернуть таблицу со строго типизированными полями.

Заранее спасибо!
...
Рейтинг: 0 / 0
Необходимо заполнить DataTable из XML
    #36550673
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Limonad,

up
...
Рейтинг: 0 / 0
Необходимо заполнить DataTable из XML
    #36550821
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваш пример даже не компилируется, сложно было по-человечески оформить?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
private DataTable GetDataTable()
{
    string strXML = @"<root><rec id=""1"" name=""rec1""/><rec id=""2"" name=""rec2""/></root>";
    DataSet ds = new DataSet();
    using (StringReader xmlT = new StringReader(strXML))
    {
        ds.ReadXml(xmlT);
        return ds.Tables[0];
    }
}
...
Рейтинг: 0 / 0
Необходимо заполнить DataTable из XML
    #36550841
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ,

тоже увидел, когда уже отправил
кнопку "редактировать" не нашёл ))
...
Рейтинг: 0 / 0
Необходимо заполнить DataTable из XML
    #36550846
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и, устраивает решение-то?
...
Рейтинг: 0 / 0
Необходимо заполнить DataTable из XML
    #36551470
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ,

неа
т.к. мне нужно чтобы поля в DataTable были строго типизированы, т.к. для таблицы будут применяться метод Compute - будет вычисляться сумма по полю
если я делаю так:

Код: plaintext
int.Parse(qu.Results.Compute("sum(amountItem)", "id=7"));

возникает ошибка "Входная строка имела неверный формат."
...
Рейтинг: 0 / 0
Необходимо заполнить DataTable из XML
    #36552112
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
int result = dt.AsEnumerable()
    .Where(d => Convert.ToInt32(d["id"]) == 7)
    .Sum(d => Convert.ToInt32(d["amountItem"]));
...
Рейтинг: 0 / 0
Необходимо заполнить DataTable из XML
    #36553177
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, если так важен сам Compute и если типы известны заранее, то можно клонировать исходную таблицу и определить типы:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
DataTable newTable = dt.Clone();
newTable.Columns["id"].DataType = typeof(int);
newTable.Columns["amountItem"].DataType = typeof(int);
foreach (DataRow dr in dt.Rows)
{
    newTable.ImportRow(dr);
}

object result = newTable.Compute("sum(amountItem)", "id=7");
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Необходимо заполнить DataTable из XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]