Asp.net自动增量数据(来自数据库)到变量-错误对象不能从DBNull强制转换

本文关键字:不能 对象 错误 DBNull 转换 变量 net 数据 Asp 数据库 | 更新日期: 2023-09-27 18:09:13

一直出现此错误"Object cannot be cast from DBNull to other types."on totaldevotos += Convert.ToInt32(dr["Classificacao"])

我试图将来自数据库"Classificacao"的对象转换为Integer,(它是数据库上的一个Int字段),有什么想法吗?

string sql = "SELECT * from Users LEFT JOIN Cocktails on Users.ID_Utilizador=Cocktails.ID_utilizador1 LEFT JOIN Rating on Cocktails.ID_cocktail=Rating.ID_cocktail WHERE Cocktails.ID_utilizador1=Users.ID_utilizador AND Users.ID_utilizador=" + ID;
int totaldevotos = 0;
SqlDataReader dr = con.query(sql);
while (dr.Read())
{
    if (dr.HasRows)
    {
        totaldevotos += Convert.ToInt32(dr["Classificacao"]);
    }
}

Asp.net自动增量数据(来自数据库)到变量-错误对象不能从DBNull强制转换

数据库中的值至少在某些行中为NULL。

在尝试解析该值之前,检查它是否为null。

if (dr.HasRows)
{
    while (dr.Read())
    {
        if (dr["Classificacao"] != DBNull.Value)
        {
            totaldevotos += Convert.ToInt32(dr["Classificacao"]);
        }
    }
}

同样,您只需要在开始循环之前检查一次dr.HasRows

相关文章: