调用存储过程并且使用返回值的基本方法

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

一直没有找到一种好的方法来引用有返回值的存储过程的方法,使我在添加数据中走了不少的弯路,最近,在查阅了大量的资料之后,终于在微软的一个实例中找到了一种良好的方法。

首先编写好一有返回值的存储过程

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;再自己改一个参数名就可以了.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航