С# MYSQL находит DataTable.PrimaryKey в другом DataTable?

у меня есть 2 DataTables с данными (dtm и dtl). Я должен выяснить, существует ли DataRow из DataTable1 в Datatable2. У меня есть комбинированный ключ primray из 3 столбцов. Я знаю, что могу получить первичный ключ DataTable следующим образом.

DataColumn[] pkcol;
pkcol = dtm.PrimaryKey;

Можно ли использовать метод Find таким образом?

if (dtl.Rows.Find(dtm[pkcol]) == null)
   {

   }

Я должен реализовать метод синхронизации DataTable. Поэтому я использую foreach Datarow в dtm.Rows и Foreach Datarow в dtl.Rows. Было бы здорово, если бы я мог перейти к таблице и найти, если существует значение первичного ключа datarows в таблице. Любые идеи? Пожалуйста помоги. Спасибо


person CSharpDevRookie    schedule 06.05.2014    source источник
comment
Проверьте эту тему. Это решит вашу проблему. запрос LINQ к DataTable   -  person Shubhojit    schedule 06.05.2014


Ответы (1)


Согласно MSDN DataRowCollection.Findуже ищет строки с заданными значениями в ПК. Таким образом, вам даже не нужно получать ПК, а просто массив значений, который соответствует ПК по количеству и типу:

// Create an array for the key values to find.
object[]findTheseVals = new object[3];

// Set the values of the keys to find.
findTheseVals[0] = "John";
findTheseVals[1] = "Smith";
findTheseVals[2] = "5 Main St.";

DataRow foundRow = table.Rows.Find(findTheseVals);

Вы должны установить значения равными нулю, чтобы найти свою строку.

person TaW    schedule 06.05.2014