无法将对象从DBNull强制转换为其他类型.读取器读取空值时出错

Mar*_*ark 8 c# error-handling null

int topID = 0;
string TopIDQuery = "Select TopID from tbl_Organisation where OrganisationID=@OrgID";

paramet[0] = new MySqlParameter("@OrgID", MySqlDbType.Int32);
paramet[0].Value = OrgID;

reader = server.ExecuteReader(CommandType.Text, TopIDQuery, paramet);

while (reader.Read())
{
    topID = Convert.ToInt32(reader["TopID"]);
}

reader.Close();
Run Code Online (Sandbox Code Playgroud)

我正在topID从表中读取,当TopID为null时,我想保留topID为0,但由于它为null,因此抛出错误,如何在topIDnull 时处理此错误

mar*_*c_s 7

将您的阅读代码更改为:

while (reader.Read())
{
    if(reader.IsDBNull(reader.GetOrdinal("TopID")))
       topID = 0;
    else
       topID = Convert.ToInt32(reader["TopID"]);
}
Run Code Online (Sandbox Code Playgroud)