2

n列のデータテーブルがあり、それをPivotに変換しています。

私はすでにそれをピボットに変換するためのコードを持っています、参照:

LINQを使用してPIVOTの行ごとの合計を追加する

null値を含む列がある場合に問題が発生します。

次の行はエラーで失敗します

dtPivot.PrimaryKey = dtPivot.Columns.Cast<DataColumn>().ToArray();

Error : Column 'x' has null values in it.

誰かが私を助けることができますか、これを処理する方法...

4

1 に答える 1

0

まず、問題の原因を正確に調べます。

行の前にブレークポイントを追加し、どの項目が含まれているかを確認しますdtPivot.Columns(使用してみることができますToArray())。

問題を引き起こしているアイテムがありますnullか、またはプロパティを持つアイテムがありますか?これを確認するには、デバッグウィンドウのウォッチを使用して、アイテムを手動からにnullキャストしてみて、エラーをスローするもの(および、場合によってはエラーをスローする理由)を確認します。dtPivot.ColumnsDataColumn

の項目の一部がであることが原因でエラーが発生した場合は、dtPivot.Columns最初nullにを使用してそれらを除外してみてくださいCast<object>().Where(o => o != null)。プロパティがnullであることが原因でエラーが発生した場合は、最初に列をキャストできるものが他にないかどうかを確認してから、列をフィルタリングしてみてください(または必要に応じて不足している値を入力してください)。

于 2013-01-09T13:22:25.740 に答える