存储过程代码:
create procedure proc_name
@para1 nchar(20), --输入参数
@para2 int = null output --输出参数,供程序使用
as
begin
if (@para1='a')
begin
insert into employee(name) values(@para1)
select @para2=@@identity --返回添加记录的ID
return 1 --返回是否成功添加数据
end
else
return 0 --返回失败
end
go
在查询分析器中的测试:
declare @id nchar(10)
exec dbo.proc_name 'a',@id output
print @id
在asp.net中调用:
sqlcommand command;
command = new sqlcommand(proc_name,new sqlconnection(connectionstr));
command.paraments.add("@para1"),"name1"); //输入参数,职员姓名
command.paraments.add(new sqlparament("@para2", //生成一输出参数
SqlDbType.Int; //参数数据类型
ParamenterDirection.OutPut, //输入输出类型
0,
0,
string.Emplty,
DataRowVerstion.Default,
null) //参数值,输入参数时需提供
);
command.commandtype=commandtype.StoredProcedure;
command.connection.open();
command.executenonQuery();
int pkid=(int)command.Parameters["@para2"].value; //得到输出参数的值
command.connection.close();
注意红色标注的地方,这在设置参数时很重要。