Member 10371658 Ответов: 1

Как умножить значения столбцов со всеми другими значениями столбцов в datatable in c#.net


как умножить столбец datatable со всеми столбцами для одних и тех же столбцов DataTable:


мой datatable-это:

col4 	col3	col2	col1
8	         5	 1	 1
9	         2		
7	         4		



ожидаемый результат:
col4	col3	col2	col1
     8	          5	 1	 1
     8	          2	 1	 1
     8	          4	 1	 1
     9	          5	 1	 1
     9	          2	 1	 1
     9	          4	 1	 1
     7	          5	 1	 1
     7	          2	 1	 1
     7	          4	 1	 1


Что я уже пробовал:

for (var v = 0; v < dt.Rows.Count; v++)
{
	int s = 0;
	for (var k = dt.Columns.Count; k > 0; k--)
	{
		DataRow d = dtRecord.NewRow();
		if (dtRecord.Columns.Contains(dt.Columns[k - 1].ToString()))
		{
			d[dt.Columns[k - 1].ToString()] = dt.Rows[v][dt.Columns[k - 1].ToString()].ToString();
			if (s == 0)
				dtRecord.Rows.Add(d);
			else
				dtRecord.Rows[v][dt.Columns[k - 1].ToString()] = dt.Rows[v][dt.Columns[k - 1].ToString()].ToString();
			s++;
		}
	}

}<pre>

ZurdoDev

Вероятно, сначала было бы проще сделать это в sql. Но почему ваш код не работает?

Graeme_Grant

Неясно, как генерируются данные или в каком типе приложения они используются, поскольку контекст не указан... Это может быть пользовательский интерфейс, а не БД ...

1 Ответов

Рейтинг:
2

Graeme_Grant

Это должно помочь: объект DataColumn.Свойство Выражения (System. Data)[^] и это: Создание Столбцов Выражений | Microsoft Docs[^] (примеры кода включены)

ОБНОВЛЕНИЕ: Если вы имеете в виду автоматическое заполнение, то вам нужно сделать это вручную-взять данные из исходной таблицы данных и создать новую... Что-то вроде этого:

DataTable ExpandDataTable(DataTable dt)
{
    var dt = new DataTable();
    // configure columns
    // iterate and build new DataTable
    return dt;
}


Member 10371658

ничего полезного, как я и ожидал.

Graeme_Grant

Чего ты ждешь?

Member 10371658

у меня есть следующая таблица данных:
с col3 col4 столбца col1 и col2
8 5 1 1
9 2
7 4
ожидаемый результат:
с col3 col4 столбца col1 и col2
8 5 1 1
8 2 1 1
8 4 1 1
9 5 1 1
9 2 1 1
9 4 1 1
7 5 1 1
7 2 1 1
7 4 1 1

Каждый столбец умножается на все остальные столбцы, которые составляют уникальную строку. см. вышеприведенные таблицы