在asp.net中我们经常会和数据库打交道,也就会用到很多sql语句和存储过程,直接使用sql语句会给我们带来一些安全性问题,比如sql注入,存储过程在程序中执行效率高,安全性高,且使用的资源比较少,存储过程建立好以后,实际上已经编译好了且存储在数据库中,而sql语句,写好之后需要先执行再编译,因此比较消耗资源,其以上优势在程序员调用时,可以节省大量时间,给程序员效率的提升,可见在.NET开发中的分量。
在调用存储过程之前必须要做的是添加引用语句:using system.data.sqlclient,要在程序中访问数据库,一般的步骤是首先声明一个数据库连接SqlConnection,然后声明一个数据库命令SqlCommand,用来执行 SQL语句和存储过程。先看实例:
1,执行没有参数的存储过程:
SqlConnection conn=new SqlConnection(“connectionString”); |
解释:创建连接对象,实例化适配器对象,达到一些数据并添加到数据集dataset中,命令语句NameOfProcedure就是存储过程名称,命令类型CommandType.StoredProcedure为存储过程,完成调用后就可以与相关表格绑定即可。
2,下面执行的时代参数的存储过程
SqlConnection conn=new SqlConnection(“connectionString”); |
(与1中的代码完全相同,一下为添加的)
param = new SqlParameter("@ParameterName", SqlDbType.DateTime); |
仔细看你会发现这和我们利用sql语句连接数据库时,实行的参数化大致相同,唯一多的就是参数的进出方向即:param.Direction = ParameterDirection.Input;输入方向。首先是new一个参数实例 param 并指明其方向,就是所说的输出输入参数,然后通过转换为param指定值,然后就是把这个param作为参数添加到命令语句中。
通过调用存储过程,可以发现提高了程序员的开发速度,节省了开发时间,对代码的维护更加容易,同时减少系统的大小,提高了执行效率,所以说在现实开发中存储过程的实用价值也是可以肯定的。