SQLhelper助手类编写:

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

personDAO员工操作类编写:

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

     对Task和backStack的认识过程 1.由demo测试得到的关系图: 1.一个task中可以有多个app的Activity, 由于一个app可以对应一个或多个process, 2.所以一个ta ...

  2. maintenance ShellScripts

    1.Linux挂载Winodws共享文件夹 2.查看http的并发请求数及其TCP连接状态: 3.用tcpdump嗅探80端口的访问看看谁最高 4.统计/var/log/下文件个数 5.查看当前系统每 ...

  3. iphone5升级到iOS7时出现“This device isn't eligible for the requested build”错误

    因为工作的需要我需要把自己的手机升级到iOS7,安装苹果的升级顺序总是报This device isn't eligible for the requested build错误,搜索相关的文章我的错误 ...

  4. uva 301 Transportation 铁路公司的阳谋 纯dfs暴力

    题目比较难理解. 给出铁路的容量和站点数,以及几笔订单,要求算出如何盈利最大. 咋一看想贪心,但无法确定是最优解啊. 于是用dfs做,就两种状况,选与不选,先开一个每个站点的当前人数数组,假设要选,然 ...

  5. 一起学习iOS开发专用词汇,每天记3个,助你变大牛

    大家做开发最大的问题是什么?英语的问题应该困扰很多的同学的地方,我们提倡科学学习开发中的常用词汇.我们不要求大家有特别好的听.说.写,只要能够记住,能够认识这些常用词汇你以后的开发也将游刃有余.我们的 ...

  6. C++ - Vector 计算 均值(mean) 和 方差(variance)

    Vector 计算 均值(mean) 和 方差(variance) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24623187 ...

  7. 通过pull解析器操作安卓的xml

    通过pull解析器操作安卓的xml 例子定义了一个javabean用于存放上面解析出来的xml内容, 这个javabean为Person,代码请见本页下面备注: =================== ...

  8. 怎样在UICollectionView中添加Header和footer

    ---恢复内容开始--- 怎样在UICollectionView中添加Header和footer 转载于http://my.oschina.net/zboy/blog/221525 摘要 来自-htt ...

  9. $.ajax传递字符串到后台,后台返回json对象

    var mall = { MallID: $("#createId").val().trim(), MallName: $("#createName").val ...

  10. 计算Date间的分钟数

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm"); Date date_begin = simpl ...