SQLhelper助手类编写:

  1. 1 using System;
  2. 2 using System.Collections.Generic;
  3. 3 using System.Linq;
  4. 4 using System.Text;
  5. 5 using System.Threading.Tasks;
  6. 6
  7. 7 using System.Data;
  8. 8 using System.Data.SqlClient;
  9. 9 using System.Configuration;
  10. 10
  11. 11 namespace DAL
  12. 12 {
  13. 13 public class SQLHelper
  14. 14 {
  15. 15 SqlCommand cmd = null;
  16. 16
  17. 17 public string strcon()
  18. 18 {
  19. 19 string strcon = ConfigurationManager.ConnectionStrings["strcon"].ConnectionString;
  20. 20
  21. 21 return strcon;
  22. 22 }
  23. 23
  24. 24 public SqlConnection getcon()
  25. 25 {
  26. 26 SqlConnection con = new SqlConnection(strcon());
  27. 27
  28. 28 if (con.State == ConnectionState.Closed)
  29. 29 {
  30. 30 con.Open();
  31. 31 }
  32. 32
  33. 33 return con;
  34. 34 }
  35. 35
  36. 36 /// <summary>
  37. 37 /// 执行增删改查的SQL语句
  38. 38 /// </summary>
  39. 39 /// <param name="sql">要执行的SQL</param>
  40. 40 /// <returns>返回执行SQL语句后影响的行数</returns>
  41. 41 public int ExecuteNonQuery(string sql)
  42. 42 {
  43. 43 int res;
  44. 44
  45. 45 try
  46. 46 {
  47. 47 cmd = new SqlCommand(sql, getcon());
  48. 48
  49. 49 res = cmd.ExecuteNonQuery();
  50. 50 }
  51. 51 catch (Exception ex)
  52. 52 {
  53. 53 throw ex;
  54. 54 }
  55. 55 finally
  56. 56 {
  57. 57 if (getcon().State == ConnectionState.Open)
  58. 58 {
  59. 59 getcon().Close();
  60. 60 }
  61. 61 }
  62. 62
  63. 63 return res;
  64. 64 }
  65. 65
  66. 66 /// <summary>
  67. 67 /// 执行传入的SQL查询语句
  68. 68 /// </summary>
  69. 69 /// <param name="sql">要执行的查询SQL</param>
  70. 70 /// <returns>返回查询SQL语句的数据集</returns>
  71. 71 public DataTable ExecuteQuery(string sql)
  72. 72 {
  73. 73 DataTable dt = new DataTable();
  74. 74
  75. 75 SqlConnection con = new SqlConnection(strcon());
  76. 76
  77. 77 //创建一个SqlCommand对象cmd,让其连接数据库,并指向sql语句。
  78. 78 cmd = new SqlCommand(sql, getcon());
  79. 79
  80. 80 //执行cmd连接的数据库.使用using后在执行完毕后,直接关闭sdr。不需要写sdr.closed.
  81. 81 using (SqlDataReader sdr = cmd.ExecuteReader())
  82. 82 {
  83. 83 dt.Load(sdr);// Load 适合于SqlDataReader。如果是SqlDataAdapter,则要用到 Fill 方法。
  84. 84 }
  85. 85
  86. 86 getcon().Close();
  87. 87
  88. 88 return dt;
  89. 89 }
  90. 90 }
  91. 91 }

personDAO员工操作类编写:

  1. 1 using System;
  2. 2 using System.Collections.Generic;
  3. 3 using System.Linq;
  4. 4 using System.Text;
  5. 5 using System.Threading.Tasks;
  6. 6
  7. 7 using System.Data;
  8. 8 using System.Data.SqlClient;
  9. 9
  10. 10 namespace DAL
  11. 11 {
  12. 12 public class personDAO
  13. 13 {
  14. 14 SQLHelper sq = null;
  15. 15
  16. 16 public personDAO()
  17. 17 {
  18. 18 sq = new SQLHelper();
  19. 19 }
  20. 20
  21. 21 /// <summary>
  22. 22 /// 增加员工信息
  23. 23 /// </summary>
  24. 24 /// <param name="name">要添加的员工姓名</param>
  25. 25 /// <param name="sex">要添加的员工性别</param>
  26. 26 /// <param name="salary">要添加的员工工资</param>
  27. 27 /// <returns>返回真假值:如果是真显示添加成功,如果是假显示添加失败</returns>
  28. 28 public bool insert(string name, string sex, string salary)
  29. 29 {
  30. 30 bool flag = false;
  31. 31
  32. 32 string sql = "insert into person ([name], sex, salary) values ('"+name+"', '"+sex+"', '"+salary+"')";
  33. 33
  34. 34 if (sq.ExecuteNonQuery(sql) > 0)
  35. 35 {
  36. 36 flag = true;
  37. 37 }
  38. 38
  39. 39 return flag;
  40. 40 }
  41. 41
  42. 42 /// <summary>
  43. 43 /// 删除员工信息
  44. 44 /// </summary>
  45. 45 /// <param name="id">要删除员工的id</param>
  46. 46 /// <returns>返回真假值:如果是真显示删除成功,如果是假显示删除失败</returns>
  47. 47 public bool delete(string id)
  48. 48 {
  49. 49 bool flag = false;
  50. 50
  51. 51 string sql = "delete from person where id = '" +id+ "'";
  52. 52
  53. 53 if (sq.ExecuteNonQuery(sql) > 0)
  54. 54 {
  55. 55 flag = true;
  56. 56 }
  57. 57
  58. 58 return flag;
  59. 59 }
  60. 60
  61. 61 /// <summary>
  62. 62 /// 更改员工信息
  63. 63 /// </summary>
  64. 64 /// <param name="id">要更改的员工编号</param>
  65. 65 /// <param name="name">要更改的员工姓名</param>
  66. 66 /// <param name="sex">要更改的员工性别</param>
  67. 67 /// <param name="salary">要更改的员工工资</param>
  68. 68 /// <returns>返回真假值:如果是真显示更改成功,如果是假显示更改失败</returns>
  69. 69 public bool update(string id, string name, string sex, string salary)
  70. 70 {
  71. 71 bool flag = false;
  72. 72
  73. 73 string sql ="update person set [name] = '"+name+"', sex = '"+sex+"', salary = '"+salary+"' where id = '"+id+"'";
  74. 74
  75. 75 if (sq.ExecuteNonQuery(sql) > 0)
  76. 76 {
  77. 77 flag = true;
  78. 78 }
  79. 79
  80. 80 return flag;
  81. 81 }
  82. 82
  83. 83 /// <summary>
  84. 84 /// 判断员工姓名是否重复
  85. 85 /// </summary>
  86. 86 /// <param name="name">要进行判断的员工姓名</param>
  87. 87 /// <returns>返回真假值:如果是真代表重复,如果是假进行添加</returns>
  88. 88 public bool repeat(string name)
  89. 89 {
  90. 90 bool flag = false;
  91. 91
  92. 92 string sql = "select * from person where [name] = '" +name+ "'";
  93. 93
  94. 94 #region 这样写的话,还要重新建立一张虚拟表,如果直接用下面的方法,进行行数的判断就不需要建立。
  95. 95 //DataTable dt = sq.ExecuteQuery(sql);
  96. 96
  97. 97 //if (dt.Rows.Count > 0)//dt.Rows.Count 这个方法是检查返回的虚拟表中是不是有数据,如果有的话则行数不为零。如果没有的话则行数为零。
  98. 98 //{
  99. 99 // flag = true;
  100. 100 //}
  101. 101 #endregion
  102. 102
  103. 103 if (sq.ExecuteQuery(sql).Rows.Count > 0)//dt.Rows.Count 这个方法是检查返回的虚拟表中是不是有数据,如果有的话则行数不为零。如果没有的话则行数为零。
  104. 104 {
  105. 105 flag = true;
  106. 106 }
  107. 107
  108. 108 return flag;
  109. 109 }
  110. 110 }
  111. 111 }

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

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

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

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

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

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

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

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

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

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

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

  6. WEB三层架构与MVC

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

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

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

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

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

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

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

随机推荐

  1. web.config中<customErrors>节点

    错误提示: “/”应用程序中的服务器错误.------------------------------------------------------------------------------- ...

  2. nova的wsgi介绍【WIP】

    有关openstack的所有的帖子. https://www.ustack.com/blog/openstack_hacker/#Nova_Workflow 网上已经很多的分析文章了: http:// ...

  3. 截取字符串一之slice

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Android建立模拟器进行调试

    安装好android开发环境后.用到下面几个命令.android, adb, emulator android - 最主要的android命令.能够进行sdk更新,列出设备源,生成虚拟设备等. adb ...

  5. C#程序设计六大原则记录

    本文目的在于记录,方便以后的回顾 http://www.uml.org.cn/sjms/201211023.asp 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因.通俗的 ...

  6. HTML5实现图片选择并预览

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs& ...

  7. C++输出中文字符(转)

    C++输出中文字符 1. cout 场景1: 在源文件中定义 const char* str = "中文" 在 VC++ 编译器上,由于Windows环境用 GBK编码,所以字符串 ...

  8. SGU 101.Domino( 欧拉路径 )

    求欧拉路径...直接dfs即可,时间复杂度O(N) -------------------------------------------------------------------------- ...

  9. Centos 7 安装Mono和Jexus 默认目录安装 (一)

    一.准备环境 yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-deve ...

  10. ExpandableListView 箭头样式

    ExpandableListVivew是ListView的子类,它在普通ListView的基础上进行了扩展,它把应用中的列表项分为几组,每组里 又可包含多个列表项.ExpandableListVive ...