如何处理SQL Server NULL值

时间:2015-02-22 09:48:21

标签: c# sql-server

我试图从我的数据库中获取值,当所有列都有值时,它会起作用。值为NULL时,将返回错误。

我设法找到了处理字符串的方法,但如果有整数,我就不知道如何处理它。我试图找到一个解决方案但到目前为止没有一个对我有用!这是代码,任何帮助都将受到高度赞赏。

谢谢!

while (dr.Read())
{
    coments comentsar = new coments
            {
                Id = (int)dr["Id"],
                Name = (string)dr["Name"],
                Likes = (int)dr["Likes"],
          //    Signature = dr["Signature"].ToString(),
                Datetime = (DateTime)dr["Datetime"]
            };

    comen.Add(comentsar);

    return comen;
}

2 个答案:

答案 0 :(得分:1)

您可以检查空值,如果值不为空,则使用三元运算符分配变量:

Signature  = dr["Signature"] != DBNull.Value ? (string)dr["Signature"] : "No value",
Likes = dr["Likes"] != DBNull.Value ? Convert.ToInt32(dr["Likes"]) : 0,

答案 1 :(得分:0)

您需要将类型更改为Nullable类型。

(int)dr["Likes"]更改为(int?)dr["Likes"]
Datetime = (DateTime)dr["Datetime"]Datetime = (DateTime?)dr["Datetime"]

您还需要更新模型coments以允许可以为空的类型。

Microsoft Nullable Types