在实际项目中,程序设计都有他的层次结构,比如MVC、MVP、普通的三层结构等等,不过现在用三层结构的相比可能少了,但是也有一些小型项目还是挺实用的

1.介绍

普通的三层架构(BLL,DAL,Model)

1)实体(Model),用来创建对象的实体;

2)业务逻辑层(BLL),用来处理复杂的数据间的关系或者是业务间的关系;

3)数据库访问层(DAL),用来用来访问数据库的;

当然还会有,View(视图层),用来展示数据;

C#操作MySQL数据库 简单三层结构设计UI、BLL、DAL、Model实际项目应用例子

2.三层结构例子

C#操作MySQL数据库 简单三层结构设计UI、BLL、DAL、Model实际项目应用例子

2.1创建数据库并创建一张测试表

这里我用的Mysql

/*
Navicat MySQL Data Transfer

Source Server         : JiYFMySQL
Source Server Version : 50553
Source Host           : localhost:3306
Source Database       : testdemo

Target Server Type    : MYSQL
Target Server Version : 50553
File Encoding         : 65001

Date: 2019-01-26 11:06:05
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(8) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `age` int(8) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', '燕子', '25');
INSERT INTO `user` VALUES ('2', 'lisi', '15');
INSERT INTO `user` VALUES ('3', 'wangwu', '15');

数据库表如下

C#操作MySQL数据库 简单三层结构设计UI、BLL、DAL、Model实际项目应用例子

2.2创建实体类

 1     /// <summary>
 2     /// user:实体类(属性说明自动提取数据库字段的描述信息)
 3     /// </summary>
 4     [Serializable]
 5     public partial class user
 6     {
 7         public user()
 8         {}
 9         #region Model
10         private int _id;
11         private string _name;
12         private int? _age;
13         /// <summary>
14         /// 
15         /// </summary>
16         public int id
17         {
18             set{ _id=value;}
19             get{return _id;}
20         }
21         /// <summary>
22         /// 
23         /// </summary>
24         public string name
25         {
26             set{ _name=value;}
27             get{return _name;}
28         }
29         /// <summary>
30         /// 
31         /// </summary>
32         public int? age
33         {
34             set{ _age=value;}
35             get{return _age;}
36         }
37         #endregion Model
38 
39     }

2.3  DAL的User类设计

  1 using System;
  2 using System.Data;
  3 using System.Text;
  4 using MySql.Data.MySqlClient;
  5 using Maticsoft.DBUtility;
  6 using System.Data.SqlClient;//Please add references
  7 namespace BenNH.DAL
  8 {
  9     /// <summary>
 10     /// 数据访问类:user
 11     /// </summary>
 12     public partial class user
 13     {
 14         public user()
 15         {}
 16         #region  BasicMethod
 17 
 18 
 19 
 20         /// <summary>
 21         /// 增加一条数据
 22         /// </summary>
 23         public bool Add(BenNH.Model.user model)
 24         {
 25             StringBuilder strSql=new StringBuilder();
 26             strSql.Append("insert into user(");
 27             strSql.Append("id,name,age)");
 28             strSql.Append(" values (");
 29             strSql.Append("@id,@name,@age)");
 30             MySqlParameter[] parameters = {
 31                     new MySqlParameter("@id", MySqlDbType.Int32,8),
 32                     new MySqlParameter("@name", MySqlDbType.VarChar,255),
 33                     new MySqlParameter("@age", MySqlDbType.Int32,8)};
 34             parameters[0].Value = model.id;
 35             parameters[1].Value = model.name;
 36             parameters[2].Value = model.age;
 37 
 38             int rows=DbHelperMySQL.ExecuteSql(strSql.ToString(),parameters);
 39             if (rows > 0)
 40             {
 41                 return true;
 42             }
 43             else
 44             {
 45                 return false;
 46             }
 47         }
 48         /// <summary>
 49         /// 更新一条数据
 50         /// </summary>
 51         public bool Update(BenNH.Model.user model)
 52         {
 53             StringBuilder strSql = new StringBuilder();
 54             strSql.Append("update user set ");
 55             strSql.Append("name=@name,");
 56             strSql.Append("age=@age");
 57             strSql.Append(" where id=@id ");
 58             MySqlParameter[] parameters = {
 59                     new MySqlParameter("@name", MySqlDbType.VarChar,255),
 60                     new MySqlParameter("@age", MySqlDbType.Int32,8),
 61                     new MySqlParameter("@id", MySqlDbType.Int32,8)};
 62             parameters[0].Value = model.name;
 63             parameters[1].Value = model.age;
 64             parameters[2].Value = model.id;
 65 
 66             int rows=DbHelperMySQL.ExecuteSql(strSql.ToString(),parameters);
 67             if (rows > 0)
 68             {
 69                 return true;
 70             }
 71             else
 72             {
 73                 return false;
 74             }
 75         }
 76 
 77         /// <summary>
 78         /// 删除一条数据
 79         /// </summary>
 80         public bool Delete(long id)
 81         {
 82             //该表无主键信息,请自定义主键/条件字段
 83             StringBuilder strSql=new StringBuilder();
 84             strSql.Append("delete from user ");
 85             strSql.Append(" where id=@userID");
 86             MySqlParameter[] parameters = {
 87                  new MySqlParameter("@@userID", SqlDbType.BigInt)
 88             };
 89 
 90             parameters[0].Value = id;
 91 
 92             int rows=DbHelperMySQL.ExecuteSql(strSql.ToString(),parameters);
 93             if (rows > 0)
 94             {
 95                 return true;
 96             }
 97             else
 98             {
 99                 return false;
100             }
101         }
102 
103 
104         /// <summary>
105         /// 得到一个对象实体
106         /// </summary>
107         public BenNH.Model.user GetModel()
108         {
109             //该表无主键信息,请自定义主键/条件字段
110             StringBuilder strSql=new StringBuilder();
111             strSql.Append("select id,name,age from user ");
112             strSql.Append(" where ");
113             MySqlParameter[] parameters = {
114             };
115 
116             BenNH.Model.user model=new BenNH.Model.user();
117             DataSet ds=DbHelperMySQL.Query(strSql.ToString(),parameters);
118             if(ds.Tables[0].Rows.Count>0)
119             {
120                 return DataRowToModel(ds.Tables[0].Rows[0]);
121             }
122             else
123             {
124                 return null;
125             }
126         }
127 
128 
129         /// <summary>
130         /// 得到一个对象实体
131         /// </summary>
132         public BenNH.Model.user DataRowToModel(DataRow row)
133         {
134             BenNH.Model.user model=new BenNH.Model.user();
135             if (row != null)
136             {
137                 if(row["id"]!=null && row["id"].ToString()!="")
138                 {
139                     model.id=int.Parse(row["id"].ToString());
140                 }
141                 if(row["name"]!=null)
142                 {
143                     model.name=row["name"].ToString();
144                 }
145                 if(row["age"]!=null && row["age"].ToString()!="")
146                 {
147                     model.age=int.Parse(row["age"].ToString());
148                 }
149             }
150             return model;
151         }
152 
153         /// <summary>
154         /// 获得数据列表
155         /// </summary>
156         public DataSet GetList(string strWhere)
157         {
158             StringBuilder strSql=new StringBuilder();
159             strSql.Append("select id,name,age ");
160             strSql.Append(" FROM user ");
161             if(strWhere.Trim()!="")
162             {
163                 strSql.Append(" where "+strWhere);
164             }
165             return DbHelperMySQL.Query(strSql.ToString());
166         }
167 
168         /// <summary>
169         /// 获取记录总数
170         /// </summary>
171         public int GetRecordCount(string strWhere)
172         {
173             StringBuilder strSql=new StringBuilder();
174             strSql.Append("select count(1) FROM user ");
175             if(strWhere.Trim()!="")
176             {
177                 strSql.Append(" where "+strWhere);
178             }
179             object obj = DbHelperSQL.GetSingle(strSql.ToString());
180             if (obj == null)
181             {
182                 return 0;
183             }
184             else
185             {
186                 return Convert.ToInt32(obj);
187             }
188         }
189         /// <summary>
190         /// 分页获取数据列表
191         /// </summary>
192         public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
193         {
194             StringBuilder strSql=new StringBuilder();
195             strSql.Append("SELECT * FROM ( ");
196             strSql.Append(" SELECT ROW_NUMBER() OVER (");
197             if (!string.IsNullOrEmpty(orderby.Trim()))
198             {
199                 strSql.Append("order by T." + orderby );
200             }
201             else
202             {
203                 strSql.Append("order by T. desc");
204             }
205             strSql.Append(")AS Row, T.*  from user T ");
206             if (!string.IsNullOrEmpty(strWhere.Trim()))
207             {
208                 strSql.Append(" WHERE " + strWhere);
209             }
210             strSql.Append(" ) TT");
211             strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
212             return DbHelperMySQL.Query(strSql.ToString());
213         }
214 
215         /*
216         /// <summary>
217         /// 分页获取数据列表
218         /// </summary>
219         public DataSet GetList(int PageSize,int PageIndex,string strWhere)
220         {
221             MySqlParameter[] parameters = {
222                     new MySqlParameter("@tblName", MySqlDbType.VarChar, 255),
223                     new MySqlParameter("@fldName", MySqlDbType.VarChar, 255),
224                     new MySqlParameter("@PageSize", MySqlDbType.Int32),
225                     new MySqlParameter("@PageIndex", MySqlDbType.Int32),
226                     new MySqlParameter("@IsReCount", MySqlDbType.Bit),
227                     new MySqlParameter("@OrderType", MySqlDbType.Bit),
228                     new MySqlParameter("@strWhere", MySqlDbType.VarChar,1000),
229                     };
230             parameters[0].Value = "user";
231             parameters[1].Value = "";
232             parameters[2].Value = PageSize;
233             parameters[3].Value = PageIndex;
234             parameters[4].Value = 0;
235             parameters[5].Value = 0;
236             parameters[6].Value = strWhere;    
237             return DbHelperMySQL.RunProcedure("UP_GetRecordByPage",parameters,"ds");
238         }*/
239 
240         #endregion  BasicMethod
241         #region  ExtensionMethod
242 
243         #endregion  ExtensionMethod
244     }
245 }
View Code

相关文章:

  • 2021-07-05
  • 2021-09-15
  • 2022-12-23
  • 2021-09-04
  • 2022-01-15
  • 2021-10-02
猜你喜欢
  • 2022-01-22
  • 2022-12-23
  • 2022-12-23
  • 2022-02-09
  • 2022-12-23
相关资源
相似解决方案