I have two Data Tables and want to combine them to form one Data Table based on their individual ID's.
The column columnName should get summed up if the ID is duplicated across the two initial Data Tables.
When I run my code I get this error
How to fix System.InvalidCastException: Specified cast is not valid
DataTable SubData = dsResult.Tables[0];
var query = SubData.AsEnumerable().GroupBy(row => new
{
ProductID = row.Field<Int64>("ProductID"),
PrdCode = row.Field<string>("PrdCode")
}).Select(grp =>
{
dynamic result = new ExpandoObject();
var dict = result as IDictionary<string, object>;
result.ProductID = grp.Key.ProductID;
result.PrdCode = grp.Key.PrdCode;
foreach (DataRow row in grp)
{
foreach (DataColumn column in SubData.Columns)
{
string columnName = column.ColumnName;
if (columnName.Equals("ProductID") || columnName.Equals("PrdCode"))
{
continue;
}
if (!dict.Keys.Contains(columnName))
{
dict[columnName] = row[columnName];
}
else
{
if (row[columnName] is System.DBNull)
{
continue;
}
if (dict[columnName] is System.DBNull)
{
dict[columnName] = row[columnName];
continue;
}
dict[columnName] = (Int64)dict[columnName] + (Int64)row[columnName];
}
}
}
return result;
});
foreach (var item in query)
{
dtGraph.Rows.Add(item);
}
答案 0 :(得分:0)
验证&d;中的数据&#39;。必须有一个您无法转换为&#39; int&#39;
的值