美好的一天,大家!
我想请求任何建议或建议..
我收到此错误:无法将对象从DBNull转换为其他类型,但它访问或引用的字段不具有空值。怎么会这样?
这是一段代码:
int pregnant = Convert.ToInt32((dtRw)["pregnant"]);
非常感谢你。
答案 0 :(得分:2)
DBNull和null是不同的。虽然null不是任何类型的实例,但System.DbNull.Value是System.DbNull的实例。阅读更多What is the difference between null and System.DBNull.Value?
以下代码将失败
if ((dtRw)["pregnant"] != null)
int pregnant = Convert.ToInt32((dtRw)["pregnant"]);
但这样做会正确
if (!(dtRw)["pregnant"] is DBNull)
int pregnant = Convert.ToInt32((dtRw)["pregnant"]);
如果您使用MySqlDataReader,那么IsDBNull方法可以检查该列是否包含不存在或缺失的值。
if(dtRw.IsDBNull("pregnant")) {
int pregnant = Convert.ToInt32((dtRw)["pregnant"]);