首页 > 代码库 > 简单的web三层架构系统【第四版】
简单的web三层架构系统【第四版】
上一次写了第三版,
因为之前无意之间看到一段视频,说是把系统中所有的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: 2014年12月29日09:18:01 7 -- Description: 删除一条员工信息 8 -- ============================================= 9 ALTER PROCEDURE [dbo].[deleteperson]10 11 @id int 12 13 AS14 BEGIN15 16 delete from person where id = @id17 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 > 0)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);15 16 return cmd.ExecuteNonQuery();17 }
注解:*在SQLHelper类中的ExecuteNonQuery方法中添加,CommandType cmt,也就是要指明要执行的是什么类型,之后就可以把原本的SQL语句换成存储过程,然后在SQLHelper类中,添加 cmd.CommandType = cmt; 指定要执行的的类型。
上面就是使用存储过程执行SQL语句。写的不是太详细,但是核心代码写了出来,方便以后查看。
简单的web三层架构系统【第四版】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。