比如说有这样一个添加操作,
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,Re1,WorkTime)
values (@Receiver,@memo,1,@SmSType,@NeedCardType,@Re1,getdate())
return @@IDENTITY
end然后我就搞糊涂了,到底执行这个存储过程中返回的是什么,是rowsAffected还是result还是smsid的值?
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,Re1,WorkTime)
values (@Receiver,@memo,1,@SmSType,@NeedCardType,@Re1,getdate())
return @@IDENTITY
end然后我就搞糊涂了,到底执行这个存储过程中返回的是什么,是rowsAffected还是result还是smsid的值?
解决方案 »
- 关于dataGridView1删除行的问题
- 请问一下各位高手,类中能用Controls.add()添加控件吗?
- 如何使用信息?
- 采用DirectShowLib-2005的DXsnap 例子拍摄出来的图像效果问题(高分)
- 如何取得word文档内容里的标题
- C# 网络编程怎么整??
- 如何将一个结构struct转成byte[]数组?
- 两版一模一样的程式,发布到两个不同的服务器上,一版正常,一版却非常奇怪!
- c#调用c++DLL,关于非托管DLL资源如何在使用完后释放
- 请问:C#下有没有类似vb.net下CallByName的功能
- 请问这个的 单选框怎么做。 圆圈中的颜色不是默认的。 默认是白色。
- 数据查找 算法问题
存储过程中的 @smsid 参数应该是output类型的。
你这个RunProcedure方法返回的结果应该是@smsid 这个参数的值。
谢谢,
错误:形参 "@smsid" 未声明为 OUTPUT 参数,但传递进来的实参请求输出 是什么原因?