在SQL Server数据库中有一列Name是字符串,现在设置为空值NULL。在C#中用MessageBox.Show(表名.列名.Name.GetType().ToString())来获取某行该列数值类型时出错,说无法将"System.DBNull"类型转换为"System.String"类型,我只是想获取类型,并没有转为String,为何会这样?

解决方案 »

  1.   

    似乎Name字段没有数值,所以ToString出错。
      

  2.   

    表名.列名.Name在访问它的时候用到了一个"GET",返回的是NULL
    于是代码变成了
    MessageBox.Show(null.GetType().ToString())
      

  3.   

    转换错误。
    MessageBox.Show(表名.列名.Name.GetType())
      

  4.   

    我想实现:如果Name列数值是NULL或者是空字符串""时,出现提示。但现在在判断NULL值时始终出错,该如何写这个if语句?
      

  5.   

    if(reader["field"]!= System.DBNull.Value)
    {}
      

  6.   


    string.IsNullOrEmpty(string value);
      

  7.   


    1。如果你是用SqlDataReader来引用的话,可以使用read.IsNull(columnIndex)来进行判断;
    2。如果是直接用DataRow来引用的话使用Table.Rows[ColumnName]==DBNull.Value来进行判断。另外如果Table.Rows[ColumnName]的值是""(空字符串)时使用.ToString()是不会报错的。
      

  8.   

    select isnull(name,0)  from
      

  9.   

    select isNull();
    isNull(对NUll值进行控制)