如何调用存储过程
人气:0调用存储过程方法如下供参考
操作方法
- 01
(1)执行一个没有参数的存储过程的代码如下:sqlconnection conn=new sqlconnection(“connectionstring”);sqldataadapter da = new sqldataadapter();da.selectcommand = new sqlcommand();da.selectcommand.connection = conn;da.selectcommand.commandtext = "nameofprocedure";da.selectcommand.commandtype = commandtype.storedprocedure;然后只要选择适当的方式执行此处过程,用于不同的目的即可。
- 02
(2)执行一个有参数的存储过程的代码如下(我们可以将调用存储过程的函数声明为exeprocedure(string inputdate)):sqlconnection conn=new sqlconnection(“connectionstring”);sqldataadapter da = new sqldataadapter();da.selectcommand = new sqlcommand();da.selectcommand.connection = conn;da.selectcommand.commandtext = "nameofprocedure";da.selectcommand.commandtype = commandtype.storedprocedure;(以上代码相同,以下为要添加的代码)param = new sqlparameter("@parametername", sqldbtype.datetime);param.direction = parameterdirection.input;param.value = convert.todatetime(inputdate);da.selectcommand.parameters.add(param);
- 03
这样就添加了一个输入参数。若需要添加输出参数:param = new sqlparameter("@parametername", sqldbtype.datetime);param.direction = parameterdirection.output;param.value = convert.todatetime(inputdate);da.selectcommand.parameters.add(param);
- 04
从上面的代码我们可以看出,当存储过程比较多或者存储过程的参数比较多时,这种方法会大大影响开发的速度;另外一方面,如果项目比较大,那么这些用于数据库逻辑的函数在以后的维护中也是一个很大的负担。那么,有没有一种改进的方法可以解决这个问题呢?想到在执行没有参数的存储过程时只需要传入一个存储过程的名字就可以调用相应的存储过程,而且在sqlserver数据库中我们可以直接在查询分析器中敲入“存储过程名(参数列表)”样的字符串就可以执行存储过程,那么,是否可以把这种思想应用到应用程序中呢?于是在编译器中键入相应代码。这些代码是在调用不带参数的存储过程的代码的基础上改的。具体代码如下:sqlconnection conn=new sqlconnection(“connectionstring”);sqldataadapter da = new sqldataadapter();da.selectcommand = new sqlcommand();da.selectcommand.connection = conn;da.selectcommand.commandtext = "nameofprocedure(’para1’,’para2’,para3)";da.selectcommand.commandtype = commandtype.storedprocedure;
- 05
为了使代码更具有代表性,要调用的存储过程的第一个和第二个参数都为字符串类型,第三个参数为整型。执行以后发现,完全可以达到预期的效果!
加载全部内容