我試圖處理DBNull的例外是這樣的:的ExecuteScalar如果DBNull的問題
string sql_com_sumcastka = "SELECT SUM(price) AS sumprice FROM kliplat WHERE akce='" + zakce.Text + "' AND year=" + year;
SqlCommand sc2 = new SqlCommand(sql_com_sumprice, spojeni);
spojeni.Open();
if (sc2 != DBNull.Value)
{
int result = Convert.ToInt32(sc2.ExecuteScalar());
}
else
{
int result = 0;
}
spojeni.Close();
string sql_com_update_sum = "UPDATE zajezd SET [email protected]_prijmy WHERE akce='"+zakce.Text+"' AND year="+year;
SqlCommand sc3 = new SqlCommand(sql_com_update_sum,spojeni);
sc3.Parameters.AddWithValue("@s_prijmy", result);
spojeni.Open();
sc3.ExecuteNonQuery();
spojeni.Close();
但我不知道如何正確處理,如果結果爲DBNull我得到這個錯誤回報:Operator '"=' cannot be applied to operands of type system.Data.SqlClient.SqlCommand and System.Dbnull
和
名稱 '結果' 並不在當前的背景下存在
我的問題是這行代碼:
if (sc2 != DBNull.Value)
{
int result = Convert.ToInt32(sc2.ExecuteScalar());
}
else
{
int result = 0;
}
感謝您的幫助。
爲什麼'sc2'是'DBNull.Value'?你剛分配給一個新的'SqlCommand'。你應該檢查'sc2.ExecuteScalar'是否是'DBNull.Value'。 –