在这里输入代码我有两个数据表,其中一个数据表连接到sql server,另一个连接到oracle。
我在两者上运行查询语句,这些工作完全找不到。
现在我需要编写一些可以将oracle中的“UNIT_NO”与sql中的“VehicleName”进行比较的内容。是的,他们是相同的数字。
现在,Oracle表引入了6列,SQL引入了4列
一个例子是:
VehicleName,VehicleGroupName,UserDefinedColumn2,UserDefinedColumn3
Unit_No,Unit_ID,Using_Dept,Status,Using_Dept_Desc,
我希望我的代码能够从Unit_NO和VehicleName中找到匹配的数字,并在一行中显示所有上述信息。我在想linq,但我无法正确显示
This code combines the columns from both tables but pulls but does not add the any data in the rows any suggest or fixes
private void GetSQLOraclelinqData()
{
var TstarData = GetTrackstarTruckData();
var M5Data = GetM5Data();
DataTable ComTable = new DataTable();
foreach (DataColumn OraColumn in M5Data.Columns)
{
ComTable.Columns.Add(OraColumn.ColumnName, OraColumn.DataType);
}
foreach (DataColumn SQLColumn in TstarData.Columns)
{
if (SQLColumn.ColumnName == "VehicleName")
ComTable.Columns.Add(SQLColumn.ColumnName + 2, SQLColumn.DataType);
else
ComTable.Columns.Add(SQLColumn.ColumnName, SQLColumn.DataType);
}
var results = TstarData.AsEnumerable().Join(M5Data.AsEnumerable(),
a => a.Field<String>("VehicleName"),
b => b.Field<String>("Unit_NO"),
(a, b) =>
{
DataRow row = ComTable.NewRow();
row.ItemArray = a.ItemArray.Concat(b.ItemArray).ToArray();
ComTable.Rows.Add(row);
return row;
});
SQLDataTable.ItemsSource = ComTable.DefaultView;
}
答案 0 :(得分:0)
我会使用两个嵌套for循环。
外部for循环将遍历SQL DataTable中的每一行。
内部循环将遍历Oracle DataTable中的每一行,如果匹配,它会将匹配存储在某处(可能在列表中)。
可选提示
答案 1 :(得分:0)
我的代码基于抓取数据网格中尚未填充的列我在后面的代码上调用了两个数据表来填充表格,并且我们也是excel表格。如果有人需要这些信息我可以提供帮助。
我连接到SQL,Oracle并加载excel表以对数据进行比较