我写了一个插入表的存储过程
CREATE PROCEDURE [AddOppt]
@name varchar(20),@chengwei varchar(10), @company varchar(50), @tel varchar(20), @addr varchar(100), @country varchar(50)AS
insert OpptFeedback (name,chengwei,company,tel,addr,country) values (@name,@chengwei,@company,@tel,@addr,@country)
GO
现在想改一下这个存储过程,加一个输出参数@outputOpptid,就是取得当前插入表的新记录的的ID号(自增),之前有告诉我在insert后面跟select scope_identity(),可以取到,
现在的问题是,我不知道这个带输出参数的存储过程如何修改,,?
2,c#里怎样写来取得这个存储过程输出的参数赋值给一个label.Text谢谢各位了啊,,
CREATE PROCEDURE [AddOppt]
@name varchar(20),@chengwei varchar(10), @company varchar(50), @tel varchar(20), @addr varchar(100), @country varchar(50)AS
insert OpptFeedback (name,chengwei,company,tel,addr,country) values (@name,@chengwei,@company,@tel,@addr,@country)
GO
现在想改一下这个存储过程,加一个输出参数@outputOpptid,就是取得当前插入表的新记录的的ID号(自增),之前有告诉我在insert后面跟select scope_identity(),可以取到,
现在的问题是,我不知道这个带输出参数的存储过程如何修改,,?
2,c#里怎样写来取得这个存储过程输出的参数赋值给一个label.Text谢谢各位了啊,,
CREATE PROCEDURE [AddOppt]
@name varchar(20),@chengwei varchar(10), @company varchar(50), @tel varchar(20), @addr varchar(100), @country varchar(50),@outputOpptid int outputAS
...
set @outputOpptid = scope_identity()
...2:
定义一个Parameter来取这个输出的值,比如:
Sqlparameter par = new SqlParameter(@outputOpptid, SqlDbType.Int);
par.Direction = ParameterDirection.Output;
...
ExecuteSql
...
object outValue = par.Value;
@name varchar(20),@chengwei varchar(10), @company varchar(50), @tel varchar(20), @addr varchar(100), @country varchar(50)AS
insert OpptFeedback (name,chengwei,company,tel,addr,country) values (@name,@chengwei,@company,@tel,@addr,@country)/*加这一行*/return (select @@identity) GO
取存储过程返回的int值public override int exeSP(string strSP,string[] strParams,object[] strValues)
{
SqlCommand cmd=new SqlCommand();
cmd.Connection=this.conn ;
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText=strSP;
if(inTransaction)
cmd.Transaction=trans;
if((strParams!=null)&&(strParams.Length!=strValues.Length) )
return -1;
SqlParameter param;
param=cmd.Parameters.Add("@RtnVal",SqlDbType.Int);
param.Direction=ParameterDirection.ReturnValue;
if(strParams!=null)
{
for(int i=0;i<strParams.Length;i++)
cmd.Parameters.Add(strParams[i],strValues[i]);
}
cmd.ExecuteNonQuery();
param=cmd.Parameters["@RtnVal"];
return Int32.Parse(param.Value.ToString());
}
RETURN scope_identity();SqlParameter加一个参数@ReturnValue,(名字任意), Direction = ParameterDirection.ReturnValuesp执行完成后,取值
int id = cmd.Parameters["@ReturnValue"].Value;