开发者社区> 科技小先锋> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使用存储过程(22)

简介:
+关注继续查看
存储过程是数据库开发人员为了使用某一特定的数据库而编写SQL语句集。其他的web应用程序可以调用这些存储过程来访问和操作数据库中的数据,如 图:
存储过程示意图
web应用程序可以直接访问数据库,也可以通过存储过程来调用数据库,使用存储过程访问数据库与直接访问数据库,相比有很多优势比如:
  • 假如有一套复杂的SQL语句需要在多个aspx文件中,可以把他们放在一个存储过程,然后执行该存储过程。这样可以减小aspx文件的大小,同时 可以保证每一页执行的SQL语句相同;当执行一个SQL语句时,服务器要先对处理中的语句编译,这不但需要时间处理,还要花费服务器资源,相比较而言,在 存储过程执行第一次后,就不需要在进行编译了,通过存储过程可以很好的跨过编译这一步,更快的执行的SQL语句集。从一个动态网页中执行一个存储过程比执 行一个SQL语句的集合更有效。
  • 可以对存储过程输入输出值,这意味着存储过程非常灵活,相同的存储过程可以根据不同输入值返回不同的信息。
  • 当向数据库服务器传递一个SQL语句集合时,必须传递其中的 诶一个独立的预计,当执行存储过程时,相反的,仅需传递一个简单的预计,很明显的,可以通过执行存储过程,来减少在网络上的拥塞。
  • 在存储过程中,可以封装一些对数据库的数据操作,从而简化组件或 应用程序中有关数据操作 的复杂性。
  • 通过使用存储过程可以方便程序的升级和业务逻辑的修改。在存储过程中封装的数据可以很方便的修改,不需要重新更改源代码。
  • 可以提高应用程序的安全性,可以再数据库端授权用户使用存储过程,而拒绝用户直接访问数据库,这样用户可以通过存储过程来访问数据,从而防止用户 直接操作数据表。
从存储过程的优势不难看出,存储过程可以提高访问数据的效率,安全性,以及对数据库的保护性比较好,存储过程按功能可以分为“返回记录 的存储过程”“返回值的存储过程”“行为存储过程”
返回记录的存储过程用于查找指定的记录,并且排序和过滤这些记录,然后将查找、排序和过滤后的结果返回到dataset对象,或者数据列表等控件 中,此类存储过程用SQL的select语句构成。
创建存储过程:
1
create procedure index_student<br>as<br>select from course<br>where name='数据库'<br>order by id
c#后台代码:
1
using System;<br>using System.Collections;<br>using System.Configuration;<br>using System.Data;<br>using System.Linq;<br>using System.Web;<br>using System.Web.Security;<br>using System.Web.UI;<br>using System.Web.UI.HtmlControls;<br>using System.Web.UI.WebControls;<br>using System.Web.UI.WebControls.WebParts;<br>using System.Xml.Linq;<br>using System.Data.SqlClient;<br><br>namespace 返回记录<br>{<br>    public partial class _Default : System.Web.UI.Page<br>    {<br>       override protected void OnInit( EventArgs e)<br>        {<br>            InitializeComponent();<br>            base.OnInit(e);<br>        }<br><br>       private void InitializeComponent()<br>       {<br>           this.Button1.Click+=new EventHandler(Button1_Click);<br>       }<br><br>       protected void Button1_Click(object sender, System.EventArgs e)<br>       {<br>           string connectionsting = "Data Source=神舟龙-PC\\SQLEXPRESS;Initial Catalog=student;Integrated Security=True;";<br>           SqlConnection conn = new SqlConnection(connectionsting );<br>           SqlCommand comm = new SqlCommand("index_student", conn);//将存储过程名称index_student作为构造函数的一个参数<br>           comm.CommandType = CommandType.StoredProcedure;//声明comm对象的CommandType为枚举值CommandType.StoredProcedure,表示执行存储过程<br>           SqlDataAdapter da = new SqlDataAdapter(comm);<br>           DataSet ds = new DataSet();<br>         <br>           try<br>           {<br>               conn.Open();<br>               da.Fill(ds, "course");<br>               this.DataGrid1.DataSource = ds.Tables["course"].DefaultView;<br>               this.DataGrid1.DataBind();<br>               da.Dispose();<br>           }<br>           catch<br>           {<br>               this.RegisterStartupScript("message","<script>alert('操作失败!')</script>");//页面错误提示<br>           }<br>       }<br><br>      <br>    }<br>}<br>

本文转自shenzhoulong  51CTO博客,原文链接:http://blog.51cto.com/shenzhoulong/319806,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
存储过程
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
760 0
C# 调用存储过程
下面以调用:Sql Server 分页存储过程为例 调用代码如下: string MyConn = "server=数据库服务器Ip;uid=数据库用户名;pwd=密码;database=数据库名称;Trusted_Connection=no"; SqlConnection MyConnection = new SqlConnection(MyConn);
1624 0
C# 调用存储过程
下面以调用:Sql Server 分页存储过程为例 调用代码如下: string MyConn = "server=数据库服务器Ip;uid=数据库用户名;pwd=密码;database=数据库名称;Trusted_Connection=no"; SqlConnection MyConnection = new SqlConnection(MyConn);
1002 0
存储过程语法及实例
存储过程如同一门程序设计语言,同样包含了数据类型、流程控制、输入和输出和它自己的函数库。 --------------------基本语法-------------------- 一.
712 0
存储过程实例
存储过程:是为了完成特定功能的sql语句集。实例一:无参的存储过程 $conn = mysql_connect('localhost','root','root') or die ("数据连接错误!!!"); mysql_select_db('test',$conn); $sql = " ...
1104 0
调用存储过程
引用:http://blog.sina.com.cn/s/blog_58b90369010008xy.html MYSQL DELIMITER $$ DROP PROCEDURE IF EXISTS `freewap`.
639 0
DB2存储过程语法
原文 http://zhuyuehua110.blog.163.com/blog/static/918619420107953555989/ 语法:      CREATE PROCEDURE . (参数) [属性]       --参数:SQL PL 存储过程中有三种类型的参数:         IN:输入参数(默认值,也可以不指定)         OUT:输出参数         INOUT:输入和输出参数       --属性    1、LANGUAGE SQL    指定存储过程使用的语言。
961 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载