調用存儲過程并且使用返回值的基本方法
2024-07-21 02:31:37
供稿:網友
一直沒有找到一種好的方法來引用有返回值的存儲過程的方法,使我在添加數據中走了不少的彎路,最近,在查閱了大量的資料之后,終于在微軟的一個實例中找到了一種良好的方法。
首先編寫好一有返回值的存儲過程
create PRocedure proc_name
@para1 nchar(20), --輸入參數
@para2 int = null out --輸出參數,供程序使用
as
set nocount on
if ( not exists (select * from employee where em_name=@para1))
begin
insert into employee(name) values(@para1)
select @para2=@@identity --返回添加記錄的ID
return 1 --返回是否成功添加數據
end
else
return 0 --返回失敗
go
然后是調用存儲過程的方法
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();
此處是引用輸出參數,如果要引用返回值(是否成功添加數據)則只需把ParamenterDirection的類型改為returnvalue;再自己改一個參數名就可以了.