在实际编程中,一些代码段是可以重复使用的,为了增强代码的重用性,可以在数据库中(例如:SQL Server数据库、Oracle数据库等)创建存储过程
经系统核对无误,将检索出所有数据。所以防范的时候需要对用户的输入进行检查。特别是一些特殊字符,比如单引号、双引号、分号、逗号、冒号、连接号等进行转换或者过滤。出现上述情况是完全可以应用查询存储过程解决。
使用SQL Server中的存储过程而不使用存储在客户计算机本地的T-SQL程序的优点如下。
(1)允许模块化程序设计
只需创建一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。
(2)允许更快执行
如果操作需要大量T-SQL代码或需要重复执行,存储过程将比T-SQL批代码的执行的要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行T-SQL语句时,都要从客户端重复发送,并且在SQL Server每次执行这些语句时,都要对其进行编译和优化。
(3)减少网络流量
一个需要数百行T-SQL代码的操作由一条执行过程代码的单独语句就可以实现,而不需要在网络中发送数百行代码。
(4)可作为安全机制使用
即使对于没有直接执行存储过程中语句的权限的用户,也可以授予他们执行该存储过程的权限。
SQL Server存储过程可以用T-SQL语句的CREATE PROCEDURE创建,并可用ALTER PROCEDUREY语句进行修改,也可以用可视化管理工具——企业管理器来创建存储过程。
使用T-SQL语句CREATE PROCEDRE创建存储过程前,应考虑下列事项。
不能将CREATE PROCEDRE语句与其他SQL语句组合到单个批处理中。 创建存储过程的权限默认属于数据库中所有者,该所有者可将此权限授予其他用户。 存储过程是数据库对象,其名称必须遵守标识符规则。 只能在当前数据库中创建存储过程。
创建存储过程时,还需要指定:
所有输入参数和向调用过程或批处理返回的输出参数。 执行数据库操作(包括调用其他过程)的编程语句。 返回至调用过程或批处理以表明成功或失败(以及失败原因)的状态值。
2.实施过程
方案实施一 应用存储过程对数据进行添加和删除操作
本实例根据RadioButtonList控件中的选择条件,来判断对图书信息的操作——数据的添加或更新操作。这两种操作都是通过使用使用企业管理器来创建存储过程。
具体实施过程。
(1)新建一个网站,将其命名为8,默认主页为Default.aspx。
(2)在Default.aspx页面中涉及的主要控件如表3.6所示。
表 Default.aspx页面用到的控件
(3)实例中创建的存储过程。
使用存储过程添加数据之前,首先需要创建存储过程probookinfo,代码如下。
使用存储过程修改数据之前,首先需要创建存储过程probookinfom,代码如下。
(4)主要程序代码
在命名空间区域引用using System.Data.SqlClient和using System.IO命名空间,代码如下。
当RadioButtonList控件选择“图书信息添加”选项时,图书信息添加界面显示。在此界面中双击【图书信息添加】按钮触发该按钮的Click事件,在该事件中通过应用存储过程执行对数据库的添加操作,代码如下。
注意:在编写上述代码前,必须引用using System.Data.SqlClient命名空间。
当RadioButtonList控件选择“图书信息修改”选项时,图书信息修改界面显示。在此界面中双击【图书信息修改】按钮触发该按钮的Click事件,在该事件中通过应用存储过程执行对数据库的更新操作,代码如下。
注意:在编写上述代码前,需要在命名空间区域添加“using System.Data.SqlClient“命名空间。
当RadioButtonList控件选择“图书信息修改”选项时,图书信息修改界面显示,在此界面中当从下拉框中选择图书ID号时,数据库中相应的全部数据将显示。用户可根据实际需要更新所列出的数据。代码如下。
注意:在编写上述代码前,必须引用using System.Data.SqlClient命名空间。