Обновите datatable с другим

У меня есть 2 таблицы данных C#, главный (datatable1), который я хочу тоже обновить, имеет много строк, но второй содержит только несколько уникальных строк. Ниже я пытаюсь достичь.

Я искал способ сделать это с помощью циклов и LINQ, но, похоже, ни один из них не обновляет столбец ECAD.

Я пробовал это.

foreach (DataRow row in dtARIAA.Rows)
{
      foreach (DataRow row1 in dtReport.Rows)
      {
            if (row["Ser"] == row1["Ser"] )
            {
                row1["ECAD"] = row["Date"];
            }
      }
}
dtReport.AcceptChanges();
1
0
230
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Насколько я могу судить из приведенной выше схемы, вам просто нужно написать и выполнить этот SQL.

Table1 - это ваша таблица с датами для обновления, Table2 - ваша вторая таблица с датами

update t1 set t1.ECAD  = [t2].[Date] from Table1 t1 
                         inner join Table2 t2  ON t2.Ser = t1.Ser

Но если вы хотите работать с двумя таблицами данных, уже находящимися в памяти, вы можете использовать

// Loop over the table with the unique Ser value and with the date to transfer
foreach (DataRow r in dtARIAA.Rows)
{
      // Get the rows in the destination table with the same "Ser" value
      DataRow[] destRows = dtReport.Select("Ser = " + r["Ser"]);

      // Now update the destination table rows with the Date value
      foreach (DataRow row1 in destRows)
          row1["ECAD"] = r["Date"];
}
dtReport.AcceptChanges();

Спасибо, я могу сделать это на SQL, но мне нужно сделать это на C# с таблицами данных.

James 10.08.2018 15:57

Другие вопросы по теме