无法在空值上调用此方法或属性。数据为空

时间:2013-12-13 08:34:49

标签: c#

当我调用该函数时,我收到一条错误data is null. This method or property cannot be called on null values.

我相信此行存在错误     Error = id = rd.GetString(0);

我正在使用的代码在

之下
public string MaxId()
{
   string id="";
   con.Open();
   string sql = "SELECT MAX(CustID) FROM Customer";
   SqlCommand cmd = new SqlCommand(sql,con);
   SqlDataReader rd = cmd.ExecuteReader();
   while(rd.Read())
   {
      id = rd.GetString(0);
   }
   con.Close();
   return id;
}

如何从DataReader获取可能为null的字符串?

1 个答案:

答案 0 :(得分:12)

如果您的Customer表为空,则查询将返回NULL。

在这种情况下,rd.GetString(0)将抛出,因为GetString无法返回NULL值。

您可以执行以下操作:

if (rd.IsDBNull(0))
{
    id = null;
}
else
{
    id = rd.GetString(0);
}