【发布时间】:2011-11-07 23:03:38
【问题描述】:
我正在查看我正在开发的 .net 程序的一些代码。该程序的前任作者在一年前将代码提供给了我。突然,我看到一个我没有接触过的代码抛出的异常:
if ((string)row["LevelName"] != "ABC")
例外是“无法将'System.DBNull'类型的对象转换为'System.String'类型。
我认为字符串是可以为空的数据类型,那么我怎么可能得到这个异常呢?
【问题讨论】:
-
这段代码已经运行了一年多;我觉得我一定是在什么地方搞砸了
-
是的,事实上,我做到了。有问题的代码没有为 DBNull 值准备,因为它不应该出现在我正在运行的特定查询中。我在修改查询时犯了一个错误,因此出现了错误。
-
感谢大家提供的信息丰富的答案。我对他们都投了赞成票。难怪我读的 SQL 书把 NULL 称为“那个四个字母的单词”。
标签: .net sql string null dbnull