我创建了一个代码,在其中使用C#中的代码将两种不同类型的Excel上载为DataTable dt和dt1 现在,我要用户从每个相应的下拉列表中选择一列。
根据选择,我将不得不创建一个代码,用户将在其中指定列名称以对这些表执行Join
问题领域:
我必须编写查询,该查询基本上将分别找到并创建两个匹配和不匹配数据的数据表。
我必须将这些表下载为CSV格式
我尝试创建Join查询,但是它们没有将结果填充到数据表中
代码
private DataTable JoinDataTables(DataTable dt, DataTable dt1, params Func<DataRow, DataRow, bool>[] joinOn)
{
DataTable result = new DataTable();
try
{
foreach (DataColumn col in dt.Columns)
{
if (result.Columns[col.ColumnName] == null)
result.Columns.Add(col.ColumnName, col.DataType);
}
foreach (DataColumn col in dt1.Columns)
{
if (result.Columns[col.ColumnName] == null)
result.Columns.Add(col.ColumnName, col.DataType);
}
foreach (DataRow row1 in dt.Rows)
{
var joinRows = dt1.AsEnumerable().Where(row2 =>
{
foreach (var parameter in joinOn)
{
if (!parameter(row1, row2))
return false;
}
return true;
});
foreach (DataRow fromRow in joinRows)
{
DataRow insertRow = result.NewRow();
foreach (DataColumn col1 in dt.Columns)
{
insertRow[col1.ColumnName] = row1[col1.ColumnName];
}
foreach (DataColumn col2 in dt1.Columns)
{
insertRow[col2.ColumnName] = fromRow[col2.ColumnName];
}
result.Rows.Add(insertRow);
}
}
}
catch (Exception ex)
{
string resul_test = ex.Message;
}
return result;
}
查询应以数据表格式提供匹配的条目表达式