0
私は2つのデータテーブルを持ち、それらを結合して個々のIDに基づいて1つのデータテーブルを作成します。System.InvalidCastExceptionを修正する方法:指定されたキャストが無効です
2つの初期データテーブルにIDが重複している場合は、columnNameを集計する必要があります。
私は私のコードを実行すると、私はSystem.InvalidCastExceptionのを修正するためにどのようにこのエラー
を取得:指定されたキャストは
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);
}
例外の完全な説明を投稿してください。 – ThePerplexedOne
説明:現在のWeb要求の実行中に、未処理の例外が発生しました。エラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。 例外の詳細:System.InvalidCastException:指定されたキャストが無効です。 –
dict [columnName] =(Int64)dict [columnName] +(Int64)row [columnName];のエラーを取得しています。 –