C# C中的is DBNull和Convert.IsDBNull之间的区别?
我在c4.5框架中遇到运行时错误,但在框架3.5中运行良好,同时执行以下代码C# C中的is DBNull和Convert.IsDBNull之间的区别?,c#,C#,我在c4.5框架中遇到运行时错误,但在框架3.5中运行良好,同时执行以下代码 if (rows[0]["GS_QUERYFIELD"] != DBNull.Value) 请告诉我这两个框架中哪一个是正确的,哪一个是两者都正确的,哪一个是相同的 1) (!if (rows[0]["GS_QUERYFIELD"] is DBNull)) or 2) (!Convert.IsDBNUll(rows[0]["GS_QUERYFIELD"])) MSDN文档告诉您如
if (rows[0]["GS_QUERYFIELD"] != DBNull.Value)
请告诉我这两个框架中哪一个是正确的,哪一个是两者都正确的,哪一个是相同的
1) (!if (rows[0]["GS_QUERYFIELD"] is DBNull))
or
2) (!Convert.IsDBNUll(rows[0]["GS_QUERYFIELD"]))
MSDN文档告诉您如何执行此操作:
private string AddFieldValue(string label, DataRow row,
string fieldName)
{
if (! DBNull.Value.Equals(row[fieldName])) // <-- this is how you do it!
return (string) row[fieldName] + " ";
else
return String.Empty;
}
因此,根据Microsoft的指导,您建议的两种方法基本上都是不正确的。您会遇到什么运行时错误?从一个框架版本到下一个框架版本都没有改变。你得到了什么例外?在哪里?如果rows不是DataRowCollection,那么它是什么?它包含什么?rows是哪个类的实例?