ASP.NET通过存储过程操作数据库
2010-04-27 17:09
399 查看
在实际编程中,一些代码段是可以重复使用的,为了增强代码的重用性,可以在数据库中(例如:SQL Server数据库、Oracle数据库等)创建存储过程
在实际编程中,一些代码段是可以重复使用的,为了增强代码的重用性,可以在数据库中(例如:SQL Server数据库、Oracle数据库等)创建存储过程,然后在ASP.NET程序中调用该存储过程即可。存储过程中的内容是经编译后存储在数据库中的,所以执行的时候不必再次进行编译,从而提高了程序的执行效率。1.方案分析在实际开发项目中,通常采用存储过程查询数据,这样一来,不仅可以过滤SQL语句中非法字符,且存储过程在创建时即在服务器上进行编译。一旦创建存储过程,很多需要执行该过程的应用程序都可以调用存储过程,减少程序员可能出现的错误。应用存储过程可对数据进行添加、修改和删除等基本操作。在存储过程中还可以使用数据存取语句、流程控制语句、错误处理语句等。其主要特点是执行效率高,可重复使用。在创建存储过程时,SQL Server会将存储过程编译成一个执行计划并保存起来,在执行存储过程时,不需要重新编译,因此执行速度快。另外,为了防止存储过程被恶意修改,可以对其进行加密操作。存储过程如果被修改,将会给应用程序带来灾难性的后果,从而使应用程序无法正常运行。同时应用存储过程还可以防止SQL注入式攻击。 SQL注入式攻击是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击,动态生成Sql命令时没有对用户输入的数据进行验证,此为Sql注入攻击得逞的主要原因。 例如:如果用户的查询语句是select * from 员工信息表 where 员工姓名='江南' ,如果用户名为:江南' or '1'='1,则查询语句将会变成:
使用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页面用到的控件
使用存储过程添加数据之前,首先需要创建存储过程probookinfo,代码如下。
在命名空间区域引用using System.Data.SqlClient和using System.IO命名空间,代码如下。
当RadioButtonList控件选择“图书信息修改”选项时,图书信息修改界面显示。在此界面中双击【图书信息修改】按钮触发该按钮的Click事件,在该事件中通过应用存储过程执行对数据库的更新操作,代码如下。
当RadioButtonList控件选择“图书信息修改”选项时,图书信息修改界面显示,在此界面中当从下拉框中选择图书ID号时,数据库中相应的全部数据将显示。用户可根据实际需要更新所列出的数据。代码如下。
|
相关文章推荐
- 在ASP.NET中采用存储过程操作数据库的优点
- Flex通过Asp.net对数据库操作(第三方控件RemoteObjectAMF0)
- asp.net操作SQL SERVER 数据库时用存储过程吗???
- Asp.net操作IIS(调试通过)
- ASP.NET中数据库的操作初步----增加、删除、修改
- 编写数据库操作类,使ASP.NET中的数据库操作变得简单
- ASP.NET操作数据库
- ASP.NET中数据库的操作初步----连接并且打开数据库
- ASP.NET中数据库的操作初步----增加、删除、修改
- ASP.NET中数据库的操作初步----连接并且打开数据库
- ASP.NET 中数据库操作初步
- heml Ajax 通过Asp.net访问数据库(以Sql Server为例)
- ASP.NET对数据库的基本操作——插入,删除,修改(下)
- asp.net数据库操作
- 在ASP.NET 2.0中操作数据之七十二:调试存储过程
- 在ASP.NET 2.0中操作数据之七十三:用Managed Code创建存储过程和用户自定义函数(上部分)
- 通过ASP.net实现flash对数据库的访问
- ASP.NET TreeView树型菜单操作实例(代码调试通过)
- asp.net vb 数据库操作技巧
- ASP.NET 2.0中执行数据库操作命令之二