上一次写了第三版,

因为之前无意之间看到一段视频,说是把系统中所有的SQL语句都做成存储过程。可以在很大程度上优化系统的SQL执行速度。所以百度了一下细节问题,之后我把所有的SQL语句,都做成了存储过程。

其实写存储过程也很简单(可能是简单的系统,不需要太复杂的SQL语句),只需要在数据库里建立存储过程,然后在程序之中调用就行。

1.首先先建立存储过程:

 展开使用的数据库→可编程性→存储过程。然后右击,新建存储过程。

  1. set ANSI_NULLS ON
  2. set QUOTED_IDENTIFIER ON
  3. GO
  4. -- =============================================
  5. -- Author: H_F_us
  6. -- Create date:  2014122909:18:01
  7. -- Description: 删除一条员工信息
  8. -- =============================================
  9. ALTER PROCEDURE [dbo].[deleteperson]
  10.  
  11. @id int
  12.  
  13. AS
  14. BEGIN
  15.  
  16. delete from person where id = @id
  17.  
  18. END

上面是建立好的存储过程:

1.其中ALTER PROCEDURE 后面跟的是存储过程的名称,只要符合SQL命名规范,可任意选取。

2.AS上面,是SQL语句中要使用到的参数。

3.BEGIN 和 END之间是要执行的SQL语句。

这时候就可以在系统代码中调用了。

personDAO类中:

  1. /// <summary>
  2. /// 删除员工信息
  3. /// </summary>
  4. /// <param name="id">要删除员工的id</param>
  5. /// <returns>返回真假值:如果是真显示删除成功,如果是假显示删除失败</returns>
  6. public bool delete(person p)
  7. {
  8. bool flag = false;
  9.  
  10. SqlParameter[] paras = new SqlParameter[]
  11. {
  12. new SqlParameter("@id", p.id)
  13. };
  14.  
  15. string prd = "deleteperson";
  16.  
  17. int res = sq.ExecuteNonQuery(prd, paras, CommandType.StoredProcedure);
  18.  
  19. if (res > )
  20. {
  21. flag = true;
  22. }
  23.  
  24. return flag;
  25. }

SQLHelper类中:

  1. /// <summary>
  2. /// 执行带参数的增删改SQL语句
  3. /// </summary>
  4. /// <param name="sql">要执行的SQL语句</param>
  5. /// <param name="paras">传入的参数</param>
  6. /// <returns>返回受影响的行数</returns>
  7. public int ExecuteNonQuery(string sql, SqlParameter[] paras, CommandType cmt)
  8. {
  9. cmd = new SqlCommand(sql, getcon());
  10.  
  11. cmd.CommandType = cmt;
  12.  
  13. cmd.Parameters.AddRange(paras);
  14.  
  15. return cmd.ExecuteNonQuery();
  16. }

注解:*在SQLHelper类中的ExecuteNonQuery方法中添加,CommandType cmt,也就是要指明要执行的是什么类型,之后就可以把原本的SQL语句换成存储过程,然后在SQLHelper类中,添加 cmd.CommandType = cmt; 指定要执行的的类型。

上面就是使用存储过程执行SQL语句。写的不是太详细,但是核心代码写了出来,方便以后查看。

简单的web三层架构系统【第四版】的更多相关文章

  1. 简单的web三层架构系统【第二版】

    昨天写了 web三层架构的第一版,准确的说是三层架构的前期,顶多算是个二层架构,要慢慢完善. 第一版里,程序虽说能运行起来,但是有一个缺陷,就是里面的SQL语句,是使用的拼接字符进行执行.这样安全系数 ...

  2. 简单的web三层架构系统【第三版】

    今天是第三版,和前几天一样今天还是要对代码进行优化,三层架构是一种思想,具体能不能使得整个系统安全和高性能,还是要看代码编写的是否合理,逻辑性是否严谨. 昨天偶然间看到别人写的三层架构中,竟然没有在方 ...

  3. 简单的web三层架构系统【第五版】

    接上一版,今天差不多就是三层架构后台代码的完结了,这一版写完,接下来就是前台的制作了,前台不太熟悉,还在深入学习.过一段时间在写,今天先把后台代码写完. 三层架构包括DAL层, BLL层, UI层(也 ...

  4. 简单的web三层架构系统【第一版】

    SQLhelper助手类编写: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using Sys ...

  5. 关于WEB三层架构的思考

    1.MVC设计思想 MVC程序设计思想是眼下比較流行的WEB开发的模式,当中,M(model)是模型.即JavaBean,用来封装和保存数据:V(view)是视图,即JSP.用来显示内容:C(cont ...

  6. 使用Servlet和JSP实现一个简单的Web聊天室系统

    1 问题描述                                                利用Java EE相关技术实现一个简单的Web聊天室系统,具体要求如下. (1)编写一个登录 ...

  7. WEB三层架构与MVC

    web三层架构是指: >用户接口层(UI Layer) >业务逻辑层(Bussiness Layer) >持久化层 关于业务逻辑和用户接口 在早期的web开发中,因为业务比较简单,并 ...

  8. Django——WEB三层架构与MVC

    而我发此文的目的有二:一者,让初学者能够听到一家之言,是为解惑:二者,更希望抛砖引玉,得到专家的批判. 许多学生经常问我,MVC到底和WEB三层架构有啥关系? 开始时,我也只能给他们一些模糊的回答.时 ...

  9. 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小

    原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...

随机推荐

  1. 3D项目处理点选操作步骤

     1.用notepad++模型的obj格式文件,查找到模型各个部分的名称,命名规则:g mesh......,把名字改为规则命名.  2.选择处理 #ifdef _DEBUG #pragma comm ...

  2. Windows平台内核级文件访问

    1.背景     在windows平台下,应用程序通常使用API函数来进行文件访问,创建,打开,读写文件.从kernel32的CreateFile/ReadFile/WriteFile函数,到本地系统 ...

  3. Android切换页面效果的实现一:WebView+ViewFlipper

    前言: 这两周在帮学校做一个新生入学用的“新里程”的项目,要做到页面切换阅读的效果,自己百度了下,找到普遍是使用WebView+ViewFlipper的实现方法,但这种方法不能满足我的要求,因为它很难 ...

  4. 面向对象程序设计-C++_课时17函数重载和默认参数

    函数重载,区别一是参数类型不同,二是参数个数不同. 默认参数可以多于1个,但必须放在参数序列的后部. 尽量不要用默认参数,会影响阅读 error C2668: “f”: 对重载函数的调用不明确 #in ...

  5. Objective-C中的block块语法

    #import <Foundation/Foundation.h> /* OC不同于Java C++ 它没有字符串对象 只有NS对象 NS就是乔布斯第一个公司NeXt的类集合 被收购之后才 ...

  6. 使用 Eclipse Memory Analyzer 进行堆转储文件分析

    Eclipse Memory Analyzer(MAT)是著名的跨平台集成开发环境 Eclipse Galileo 版本的 33 个组成项目中之一,它是一个功能丰富的 JAVA 堆转储文件分析工具,可 ...

  7. Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI

    1.概述 哈,今天给大家带来一个ViewPagerIndicator的制作,相信大家在做tabIndicator的时候,大多数人都用过 TabPageIndicator,并且很多知名APP都使用过这个 ...

  8. SendMessage用法实例

    转: http://blog.csdn.net/coolszy/article/details/5523700 SendMessage用法 windowsbuttonmenucommandlistc# ...

  9. 【转】SQL Server 2008 新类型介绍之Date和Time

     转自CSDN TJVictor专栏:http://blog.csdn.net/tjvictor/archive/2009/07/13/4344429.aspx   SQL Server 2008除了 ...

  10. 2014.9.20CSS样式表

    一.前景与背景 background-color: 背景色,定义背景的颜色 background-image:url() 定义背景图片 background-attachment:fixed/scro ...