c# 4.0 -使用linq获取数据表列名,当列为空时出错



我有一个n列的数据表&我要把它转换成Pivot

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

使用LINQ在PIVOT中每行添加Sum

现在问题来了,当有一个列的空值。

下一行出错

dtPivot.PrimaryKey = dtPivot.Columns.Cast<DataColumn>().ToArray();
Error : Column 'x' has null values in it.

有谁能帮我处理这个问题吗?

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

在行前添加一个断点,并查看dtPivot.Columns中包含哪些项(您可以尝试使用ToArray())。

是否存在nullnull属性的项目导致问题?你可以通过使用调试窗口中的监视来检查这一点,尝试将一个项目从dtPivot.Columns手动转换为DataColumn,并查看哪些会抛出错误(以及可能的,为什么会抛出错误)。

如果错误是因为dtPivot.Columns中的一些项目是null,那么您可以尝试先使用Cast<object>().Where(o => o != null)过滤它们。如果错误是因为属性是null,那么看看是否没有其他可以将列强制转换为的东西,然后尝试过滤列(或填写缺失的值,如果需要的话)。

相关内容

  • 没有找到相关文章