【问题标题】:Getting DataTable column names using linq, error when column is null使用 linq 获取 DataTable 列名,列为空时出错
【发布时间】:2012-12-23 15:27:25
【问题描述】:

我有一个包含 n 列的数据表,我正在将其转换为 Pivot。

我已经有一段代码可以将其转换为 Pivot,参考:

Adding Sum per row in PIVOT using LINQ

当有一列包含空值时,问题就来了。

以下行因错误而失败

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

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

谁能帮帮我,如何处理...

【问题讨论】:

    标签: linq c#-4.0


    【解决方案1】:

    我会先看看究竟是什么导致了这个问题。

    在行前加断点,看看dtPivot.Columns里面包含了哪些项目(可以试试ToArray())。

    是否存在导致问题的 null 或属性为 null 的项目?您可以通过使用调试窗口中的手表来检查这一点,尝试手动将项目从 dtPivot.Columns 转换为 DataColumn,并查看哪些引发错误(以及可能引发错误的原因)。

    如果错误是因为dtPivot.Columns 中的某些项目是null,那么您可以尝试先使用Cast&lt;object&gt;().Where(o =&gt; o != null) 将它们过滤掉。如果错误是因为属性是null,那么看看是否没有其他可以先将列转换为的内容,然后尝试过滤列(或填写缺失值,如果需要)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 2019-11-15
      • 2017-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多