方法是这样写的
public int Getcartquantity(string cartID)
{
SqlConnection myConnection=new SqlConnection(ConfigurationSettings.AppSettings["connectionstring"]);
SqlCommand myCommand=new SqlCommand("getcartquantity",myConnection);
myCommand.CommandType=CommandType.StoredProcedure; SqlParameter parametercartID=new SqlParameter("@cartID",SqlDbType.NVarChar,50);
parametercartID.Value=cartID;
myCommand.Parameters.Add(parametercartID); SqlParameter parametercartquantity = new SqlParameter("@cartquantity", SqlDbType.Int, 4);
parametercartquantity.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parametercartquantity); myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();

return ((int)parametercartquantity.Value);
}
存储过程是这样写的
CREATE PROCEDURE getcartquantity
(
    @cartID  nvarchar(50) ,
    @cartquantity  int  output
)
 ASselect 
@cartquantity=sum(quantity) 
 from shoppingcart where cartID=@cartID
GO运行时候出的问题是
异常详细信息: System.InvalidCastException: 指定的转换无效。源错误: 
行 204:
行 205:
行 206: return ((int)parametercartquantity.Value);
行 207: }
行 208:
 
但是把存储过程中的SUM换成COUNT就没问题了
我想不明白,请高手指点