C# C中的is DBNull和Convert.IsDBNull之间的区别?

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文档告诉您如

我在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文档告诉您如何执行此操作:

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是哪个类的实例?