Я сравниваю две таблицы данных, используя ответ по этой ссылке Сравните две таблицы данных , но когда я использую функцию DataRelation, я получаю сообщение об ошибке, что длина обоих столбцов должна совпадать.но я хочу сравнить только конкретные столбцы.
В настоящее время у меня это так:
// Using a Dataset to make use of a DataRelation Object
using (DataSet ds = new DataSet())
{
//Add Tables
ds.Tables.AddRange(new DataTable[] { dt.Copy(), dataTable.Copy() });
//Get First Columns for DataRelation
DataColumn[] firstcolumns = new DataColumn[7];
firstcolumns[0] = ds.Tables[0].Columns[0];
firstcolumns[1] = ds.Tables[0].Columns[1];
firstcolumns[2] = ds.Tables[0].Columns[2];
firstcolumns[3] = ds.Tables[0].Columns[3];
firstcolumns[4] = ds.Tables[0].Columns[4];
firstcolumns[5] = ds.Tables[0].Columns[5];
firstcolumns[6] = ds.Tables[0].Columns[6];
//Get Second Columns for DataRelation
DataColumn[] secondcolumns = new DataColumn[8];
secondcolumns[0] = ds.Tables[1].Columns[0];
secondcolumns[1] = ds.Tables[1].Columns[1];
secondcolumns[2] = ds.Tables[1].Columns[2];
secondcolumns[3] = ds.Tables[1].Columns[3];
secondcolumns[4] = ds.Tables[1].Columns[4];
secondcolumns[5] = ds.Tables[1].Columns[5];
secondcolumns[6] = ds.Tables[1].Columns[6];
secondcolumns[7] = ds.Tables[1].Columns[7];
//Create DataRelation
DataRelation r = new DataRelation(string.Empty, firstcolumns, secondcolumns, false);
ds.Relations.Add(r);
//Create Columns for return table
for(int i = 0; i < dt.Columns.Count ; i++ )
{
ResultDataTable.Columns.Add(dt.Columns[i].ColumnName, dt.Columns[i].DataType);
}
//If first Row not in second, add to return table
ResultDataTable.BeginLoadData();
foreach( DataRow parentrow in ds.Tables[0].Rows)
{
DataRow[] childrows = parentrow.GetChildRows(r);
if (childrows != null || childrows.Length != 0)
{
ResultDataTable.LoadDataRow(parentrow.ItemArray, true);
}
}
ResultDataTable.EndLoadData();
ResultDataTable.AsDataView();
//Export to Excel
ResultDataTable.WriteXml("data.xls");
}
Что я хочу сделать, это если все столбцы в первых столбцах соответствуют столбцам 1, 2, 3, 4, 5, 6, 7 ввторые столбцы загружают все вторые столбцы (включая 0) в resultdatatable
Подскажите, пожалуйста, как я могу это сделать?