关于存储过程中输出参数和返回值
比如说有这样一个添加操作,
public int Add(jm.Model.Sms_SendQueue model)
{
int rowsAffected;
SqlParameter[] parameters = {
new SqlParameter("@smsid", SqlDbType.BigInt,8),
new SqlParameter("@Sender", SqlDbType.NVarChar,50),
new SqlParameter("@receiver", SqlDbType.NVarChar,50)};
parameters[0].Direction = ParameterDirection.Output;
parameters[1].Value = model.Sender;
parameters[2].Value = model.Receiver;
DbHelperSQL.RunProcedure("AddNewSMS", parameters, out rowsAffected);
return (int)parameters[0].Value;
public static int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
int result;
connection.Open();
SqlCommand command = BuildIntCommand(connection, storedProcName, parameters);
rowsAffected = command.ExecuteNonQuery(); //rowsAffected的结果是什么
result = (int)command.Parameters["ReturnValue"].Value;
//Connection.Close();
return result;
}
}
存储过程是这样的
begin
insert into dbo.Sms_SendQueue (Receiver,memo,flag,SmSType,NeedCardType,Remark1,WorkTime)
values (@Receiver,@memo,1,@SmSType,@NeedCardType,@Remark1,getdate())
return @@IDENTITY
end
然后我就搞糊涂了,到底执行这个存储过程中返回的是什么,是rowsAffected还是result还是smsid的值?