今天在编写代码时,使用DataTable进行数据接收,如果接收到的数据与当前row数据对应就进行赋值,情景如下:
foreach (DataRow temp in DataTable.Rows)
{
if ((double)temp["HiddenMaxValue"] >= 0) // 数据接收到这里出错
{
}
}
报错如下:
指定的转换无效,这是什么鬼,难道是列数据为空么,那就先判断一下是否为空吧。
if(temp["HiddenMaxValue"] != null ) // 先判断一下,然后再转换总没错吧!!!
{
}
依然有问题。既然不是空类型,还不能转换,后来发现datatable row的未赋值列属性是System.DBNull。
需要这么判断
if(temp["HiddenMaxValue"] is System.DBNull)
{
// 其他操作
}