powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / DataColumn.Expression
2 сообщений из 27, страница 2 из 2
DataColumn.Expression
    #36506537
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Варя, сейчас я покажу, что такое тестовый пример.
Но перед тем, как его показывать, расскажу, что в лоб твоя задача не решается, ибо синтаксический анализатор не поддерживает вложенные Expression условия.

1. Итак, для решения можно создать дополнительное поле во второй таблице (CustomColumn).
2. Этому полю указать такой Expression = "IIF([Checked]=True,1,0)"
3. А потом тупо в первой таблице просуммировать результат дочерних CustomColumn.
4. Всё.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
DataTable dt = new DataTable("table1");
DataTable dt2 = new DataTable("table2");
DataSet ds = new DataSet();
ds.Tables.AddRange(new DataTable[] { dt, dt2 });

DataColumn parentColumn = dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Value");
DataColumn exprColumn = dt.Columns.Add("Expr", typeof(int));
for (int i = 1; i < 4; i++)
{
    dt.Rows.Add(i, "value" + i);
}

dt2.Columns.Add("Id", typeof(int));
dt2.Columns.Add("Checked", typeof(bool));        
DataColumn childColumn = dt2.Columns.Add("ParentId", typeof(int));
dt2.Columns.Add("CustomColumn", typeof(int)).Expression = "IIF([Checked]=True,1,0)";
DataRelation relation = new DataRelation("Relation", parentColumn, childColumn);
ds.Relations.Add(relation);

for (int i = 1; i < 5; i++)
{
    dt2.Rows.Add(i, true, 1);
}
for (int i = 5; i < 10; i++)
{
    dt2.Rows.Add(i, true, 2);
}
for (int i = 10; i < 20; i++)
{
    dt2.Rows.Add(i, false, 3);
}

exprColumn.Expression = "Sum(Child(Relation).CustomColumn)";

P.S. А статейку ты почитай, котороую я дал. Это так, на будущее.
...
Рейтинг: 0 / 0
DataColumn.Expression
    #36506591
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Varia,

С празником вас Варя, не покидайте форум, мы не такие уж и злые ( вам показалось)
оставайтесь с нами.:))
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / DataColumn.Expression
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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