c# SqlCommand 调用存储过程,返回的数据类型为什么是int32

IDataParameter[] paramenters = {
new SqlParameter("@STCD",SqlDbType.VarChar),
new SqlParameter("@RZ",SqlDbType.Decimal),
new SqlParameter("@wVal",SqlDbType.Decimal),
new SqlParameter("@return",SqlDbType.VarChar)
};

paramenters[0].Value = stcd;
paramenters[1].Value = dr["RZ"];
paramenters[2].Direction = ParameterDirection.Output;
paramenters[3].Direction = ParameterDirection.ReturnValue;

图片说明

你存储过程返回的什么数据就是什么类型。

存储过程返回了decimal类型的,可是c#调用后变为int,在sqlserver里返回的值是decimal的
@stcd char(8),@RZ numeric(7,3), @wVal numeric(7,3) OUTPUT