当我在我的数据库上执行此命令时,我有时会收到result = null.我想在这种情况下进入"其他"部分,但我收到了
mscorlib.dll中发生了未处理的"System.FormatException"类型异常.附加信息:输入字符串的格式不正确.
DB database = new DB();
int reservedSeats = 0;
using (database.sqlConnection)
{
database.sqlConnection.Open();
string command = "select SUM(nrLocuri) as result from Rezervari where idRand = @idRand and idShow=@idShow";
using (SqlCommand cmd = new SqlCommand(command, database.sqlConnection))
{
cmd.Parameters.Add("@idRand", SqlDbType.Int).Value = idRand;
cmd.Parameters.Add("@idShow", SqlDbType.Int).Value = idShow;
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
if (dr["result"].ToString() != null)
reservedSeats = Convert.ToInt32(dr["result"].ToString());
else
return totalSeats;
}
}
}
return totalSeats-reservedSeats;
Run Code Online (Sandbox Code Playgroud)
代替:
if (dr["result"].ToString() != null)
Run Code Online (Sandbox Code Playgroud)
做:
if (dr["result"] != DbNull.Value)
Run Code Online (Sandbox Code Playgroud)
当dr["result"]返回数据库时null,其值为DbNull.Value- 当您尝试调用Convert.ToInt32此值时,将获得格式异常.
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |