You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DataTable空日期判断无效:if语句排除null为何仍报错?

问题原因与解决方法

判断失效的核心原因

DataTable中存储的空值不是C#常规的null,而是DBNull.Value。你用dt.Rows[0][0] != null判断时,因为实际值是DBNull.Value而非null,所以这个判断会返回true,导致后续的转换代码执行,最终报错。

额外的逻辑错误

你的foreach循环遍历的是dt.Rows里的每一行,但循环内始终取dt.Rows[0][0](第一行第一列的值),这和遍历的逻辑矛盾,应该使用当前循环的row对象来取值。

修正后的代码示例

foreach (DataRow row in dt.Rows)
{ 
    if (row[0] != DBNull.Value)
    {
        oosDate = Convert.ToDateTime(row[0]);
    }              
}

或者用更直观的DataRow.IsNull()方法:

foreach (DataRow row in dt.Rows)
{ 
    if (!row.IsNull(0))
    {
        oosDate = Convert.ToDateTime(row[0]);
    }              
}

内容的提问来源于stack exchange,提问作者Yippiekaiaii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 21:45:17