我在存儲過程中使用了SQL Server中的函數並返回RESULT一個小數。爲什麼我得到這個錯誤?
在C#中我需要得到它,但我得到一個錯誤:
「 型‘system.invaildCastException’的例外「INVALLD CastEXCEPTION是由用戶代碼unhandeld」出現......」
我的C#代碼:
decimal? val = null;
SqlConnection con = new SqlConnection(conStr);
con.Open();
using (con)
{
SqlCommand cmd = new SqlCommand("dbo.spSetOrderDetails", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter tvpParam = cmd.Parameters.AddWithValue("@OrderDetailsItemsTVP", dt);
tvpParam.SqlDbType = SqlDbType.Structured;
// this part of code return the SUM
SqlParameter returnParam = cmd.Parameters.Add("@RESULT", SqlDbType.Decimal);
returnParam.Direction = ParameterDirection.ReturnValue;
cmd.ExecuteNonQuery();
val = (decimal)cmd.Parameters["@RESULT"].Value;--HERE I GET THE EXCEPTION
}
con.Close();
return (decimal)val;
cmd.Parameters [「@ RESULT」。值可能爲NULL,你不能將NULL轉換爲不可爲空的小數。 –
你不能帶方向的參數返回值是T-SQL中的RETURN狀態值的值,該值只能是一個整數 – Steve