使用存储过程(22)

摘要:
存储过程是数据库开发人员为了使用某一特定的数据库而编写SQL语句集。从一个动态网页中执行一个存储过程比执行一个SQL语句的集合更有效。通过使用存储过程可以方便程序的升级和业务逻辑的修改。在存储过程中封装的数据可以很方便的修改,不需要重新更改源代码。可以提高应用程序的安全性,可以再数据库端授权用户使用存储过程,而拒绝用户直接访问数据库,这样用户可以通过存储过程来访问数据,从而防止用户直接操作数据表。

存储过程是数据库开发人员为了使用某一特定的数据库而编写SQL语句集。其他的web应用程序可以调用这些存储过程来访问和操作数据库中的数据,如图:

存储过程示意图

web应用程序可以直接访问数据库,也可以通过存储过程来调用数据库,使用存储过程访问数据库与直接访问数据库,相比有很多优势比如:

  • 假如有一套复杂的SQL语句需要在多个aspx文件中,可以把他们放在一个存储过程,然后执行该存储过程。这样可以减小aspx文件的大小,同时可以保证每一页执行的SQL语句相同;当执行一个SQL语句时,服务器要先对处理中的语句编译,这不但需要时间处理,还要花费服务器资源,相比较而言,在存储过程执行第一次后,就不需要在进行编译了,通过存储过程可以很好的跨过编译这一步,更快的执行的SQL语句集。从一个动态网页中执行一个存储过程比执行一个SQL语句的集合更有效。
  • 可以对存储过程输入输出值,这意味着存储过程非常灵活,相同的存储过程可以根据不同输入值返回不同的信息。
  • 当向数据库服务器传递一个SQL语句集合时,必须传递其中的 诶一个独立的预计,当执行存储过程时,相反的,仅需传递一个简单的预计,很明显的,可以通过执行存储过程,来减少在网络上的拥塞。
  • 在存储过程中,可以封装一些对数据库的数据操作,从而简化组件或 应用程序中有关数据操作 的复杂性。
  • 通过使用存储过程可以方便程序的升级和业务逻辑的修改。在存储过程中封装的数据可以很方便的修改,不需要重新更改源代码。
  • 可以提高应用程序的安全性,可以再数据库端授权用户使用存储过程,而拒绝用户直接访问数据库,这样用户可以通过存储过程来访问数据,从而防止用户直接操作数据表。

从存储过程的优势不难看出,存储过程可以提高访问数据的效率,安全性,以及对数据库的保护性比较好,存储过程按功能可以分为“返回记录 的存储过程”“返回值的存储过程”“行为存储过程”

返回记录的存储过程用于查找指定的记录,并且排序和过滤这些记录,然后将查找、排序和过滤后的结果返回到dataset对象,或者数据列表等控件中,此类存储过程用SQL的select语句构成。

创建存储过程:

create procedure index_student
as
select * from course
where name='数据库'
order by id



c#后台代码:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

namespace 返回记录
{
    public partial class _Default : System.Web.UI.Page
    {
       override protected void OnInit( EventArgs e)
        {
            InitializeComponent();
            base.OnInit(e);
        }

       private void InitializeComponent()
       {
           this.Button1.Click+=new EventHandler(Button1_Click);
       }

       protected void Button1_Click(object sender, System.EventArgs e)
       {
           string connectionsting = "Data Source=神舟龙-PC\\SQLEXPRESS;Initial Catalog=student;Integrated Security=True;";
           SqlConnection conn = new SqlConnection(connectionsting );
           SqlCommand comm = new SqlCommand("index_student", conn);//将存储过程名称index_student作为构造函数的一个参数
           comm.CommandType = CommandType.StoredProcedure;//声明comm对象的CommandType为枚举值CommandType.StoredProcedure,表示执行存储过程
           SqlDataAdapter da = new SqlDataAdapter(comm);
           DataSet ds = new DataSet();
         
           try
           {
               conn.Open();
               da.Fill(ds, "course");
               this.DataGrid1.DataSource = ds.Tables["course"].DefaultView;
               this.DataGrid1.DataBind();
               da.Dispose();
           }
           catch
           {
               this.RegisterStartupScript("message","<script>alert('操作失败!')</script>");//页面错误提示
           }
       }

      
    }
}

免责声明:文章转载自《使用存储过程(22)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇sqlserver prompt工具的使用Centos7 使用ssh进行x11图形界面转发下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

备份与恢复概述,冷备,热备

对于DBA来说,最基本的工作就是数据库的备份与恢复,在意外情况下(如服务器宕机、磁盘损坏等)要保证数据不丢失,或者是最小程度地丢失。每个DBA应该每时每刻都关心自己所负责的数据库的备份情况。MySQL数据库提供的大多数工具(如mysqldump、ibbackup、replication)都能很好地完成备份的工作,当然也可以通过第三方的一些工具来完成,如xt...

命令行工具cmder

1、下载地址 http://bliker.github.io/cmder/ 分为两个版本:mini版和Full版 2、快捷命令配置: 比如,快速启动canssandra/redis数据库服务和查询工具 启动设置如下图: 3、快速启动  4、其他 Tab manipulation Ctrl + ` : Global Summon from ta...

(转)淘淘商城系列——Redis持久化方案

http://blog.csdn.net/yerenyuan_pku/article/details/72858975 Redis中设置key的过期时间 Redis中的expire命令用于设置key的过期时间,以毫秒计。key过期后将不再可用。Redis中的expire命令基本语法如下: expire key second 设置成功返回1。当key不存在或...

将excel的.xlsx文件转成数据库文件.db的方法

1.下载好工具SQLite Expert Professional 3 ,晚上有很多,自行百度。 2.打开.xls文件,将文件另存为.csv文件。说明一下: 可以将xls文件看作是数据库里的一个表。所以,表名和.xls文件名称一直,里面的字段,就是.xls文件中的字段。 3.打开SQLite Expert Professional 3,新建一个数据库,数据...

Memcached内存缓存技术

Memcached是什么,有什么作用? Memcached是一个开源的、高性能的内存缓存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思。 Memcached通过在事先规划好的内存空间中临时缓存数据库中的各类数据,以减少业务直接对数据库的访问,从而减轻数据库的访问压力和网站集群的响应速度。 Memcached服务在企业集群架构中应用场景 1...

使用python操作mysql数据库

一、pymysql的使用 1.首先在python中安装pymysql模块(CMD窗口命令下)。 pip install pymsql 安装完成后导入import pymysql 2.pyysql 连接数据库的必要参数: 主机、端口、用户名。密码、数据库 注意:pymysql不能提供创建数据库的服务,数据库要提前创建 3.连接步骤: ​ -1. 建立数据库连...