【发布时间】:2019-03-27 15:57:27
【问题描述】:
我已经定义了一个这样的数据表
DataTable dtFinal = new DataTable();
dtFinal.Columns.Add("AVNR", typeof(int));
dtFinal.Columns.Add("Substation", typeof(string));
dtFinal.Columns.Add("ColumnTitle", typeof(string));
dtFinal.Columns.Add("S6_NAME", typeof(string));
dtFinal.Columns.Add("Voltage", typeof(string));
dtFinal.Columns.Add("Wert", typeof(decimal));
我在两个表之间进行连接以获得结果集
var results = from table1 in dtTimeListTable.AsEnumerable()
join table2 in readyDataTable.AsEnumerable() on (decimal)table1["Avnr"] equals (int)table2["Avnr"]
select new
{
AVNR = (int)table2["AVNR"],
Substation = (string)table2["Substation"],
ColumnTitle = (string)table2["ColumnTitle"],
S6_NAME = (string)table2["S6_NAME"],
Voltage = (string)table2["Voltage"],
Wert = (decimal)table1["Wert"]
};
要填充数据表,我执行以下操作:
dtFinal.Rows.Add(results.ToArray());
但是我会得到一个错误,比如这个
输入数组长于该表的列数
两个数据表都有 6 列,可能是什么问题?
【问题讨论】:
-
dtTimeListTable和readyDataTable中有哪些列? -
因为
result不是您在select子句中声明的匿名对象,它是该匿名对象的IEnumerable。 (转换为评论,因为蒂姆更快......)
标签: c# visual-studio visual-studio-2010 datatable