我试图从我的数据库中获取值,当所有列都有值时,它会起作用。值为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;
}
答案 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
以允许可以为空的类型。