2023年6月21日发(作者:)

C#实现的简单三层架构代码⽣成器(开源)C# 实现的简单三层架构代码⽣成器(开源)使⽤教程1.登录你的数据库服务器2.编辑页⾯,可以在此页⾯进⾏配置⽣成的数据库、⽣成表,以及各个层⽣成得到后缀名称,表注释字段注释等等3.选择需要⽣成的表4.设置命名空间、数据访问类名称,去除表名称前缀,还有各个层的表名称后缀,去除各个表的列名称前缀5.设置表注释,列字段注释6.选择⽣成代码的位置7.点击⽣成按钮⽣成代码8.⽣成的代码⽂件9.⽣成的表结构图10.⽣成的Model代码using System;using c;using ;using ;namespace { ///

///

⽤户表数据模型对象 ///

[Serializable] public partial class UserInfoTableMod { /// ///

初始化⽤户表数据模型对象 ///

public UserInfoTableMod() {

} ///

///

初始化⽤户表数据模型对象并给所有字段赋值 ///

/// 编号 /// 姓名 /// 密码(MD5) /// 是否为管理员 public UserInfoTableMod(long id,string name,string password,bool isAdmin) { //给编号字段赋值 = id; //给姓名字段赋值 = name; //给密码(MD5)字段赋值 rd = password; //给是否为管理员字段赋值 n = isAdmin; }

//属性存储数据的变量 private long _id; private string _name; private string _password; private bool _isAdmin;

///

///

编号 ///

public long Id { get { return this._id; } set { this._id = value; } } /// ///

姓名 ///

public string Name { get { return this._name; } set { this._name = value; } } /// ///

密码(MD5) ///

/// public string Password { get { return this._password; } set { this._password = value; } } /// ///

是否为管理员 ///

public bool IsAdmin { get { return this._isAdmin; } set { this._isAdmin = value; } }

///

///

对⽐两个⽤户表数据模型对象是否⼀致 ///

/// 要进⾏⽐对的⽤户表数据模型对象 /// 返回是否⼀致,为true⼀致,为false不⼀致 public override bool Equals(object obj) { //判断传⼊对象是否为null if (obj == null) return false; //将传⼊对象转换成⽤户表数据模型对象 UserInfoTableMod userInfoTableMod = obj as UserInfoTableMod; //判断是否转换成功 if (userInfoTableMod == null) return false; //进⾏匹配属性的值 return //判断编号是否⼀致 == && //判断姓名是否⼀致 == && //判断密码(MD5)是否⼀致 rd == rd && //判断是否为管理员是否⼀致 n == n; } /// ///

将当前⽤户表数据模型对象转换成哈希码 ///

/// 哈希值 public override int GetHashCode() { //将⽤户表数据模型对象的属性进⾏按位异或运算处理得到哈希码并返回 return //将编号进⾏按位异或运算处理 hCode() ^ //将姓名进⾏按位异或运算处理 ( == null ? 2147483647 : hCode()) ^ //将密码(MD5)进⾏按位异或运算处理 (rd == null ? 2147483647 : hCode()) ^ //将是否为管理员进⾏按位异或运算处理 hCode(); } /// ///

将当前⽤户表数据模型对象转换成字符串副本【仅显⽰在SQL中不能为空的列】 ///

/// 字符串形式副本 public override string ToString() { //将当前⽤户表数据模型对象转换成字符串副本 return "[" + //将编号转换成字符串 //将编号转换成字符串 + "," + //将姓名转换成字符串 + "," + //将密码(MD5)转换成字符串 rd + "," + //将是否为管理员转换成字符串 n + "]"; } }}11.⽣成的DAL层代码using System;using c;using ;using ent;using ;using uration;using ;using ;namespace { /// ///

⽤户表数据访问对象 ///

public partial class UserInfoTableDal { /// ///

实例化⽤户表数据访问对象 ///

public UserInfoTableDal() {

} ///

///

查询得到⽤户表表中所有信息 ///

/// 查询到的所有⽤户表数据模型对象集合 public List GetAllModel() { //创建存储查找到的⽤户表表中信息集合 List list = new List(); //使⽤查询语句查询出所有信息 using (SqlDataReader sqlReader = eReader("Select Id,Name,Password,IsAdmin From UserInfoTable;")) { //判断是否查询到了数据 if (s) { //循环得到数据 while (()) { //创建⼀个⽤户表数据模型对象 UserInfoTableMod userInfoTableMod = new UserInfoTableMod(); //存储查询到的编号数据 = 64(0); //存储查询到的姓名数据 = ing(1); //存储查询到的密码(MD5)数据 rd = ing(2); //存储查询到的是否为管理员数据 n = lean(3); //将⽤户表数据模型对象存储到集合中 (userInfoTableMod); } } } //返回查询到的信息集合 return list; } /// ///

将传⼊的⽤户表数据模型对象数据存⼊数据库,并将⾃动编号值存⼊,传⼊⽤户表数据模型对象中 ///

/// 要进⾏添加到数据库的⽤户表数据模型对象 /// 返回是否添加成功,为true添加成功,为false添加失败 public bool Add(UserInfoTableMod userInfoTableMod) { //创建存储参数的数组 SqlParameter[] sqlParameters = new[] { //将姓名存⼊ new SqlParameter("@name",ar,128){Value = ?? }, //将密码(MD5)存⼊ new SqlParameter("@password",,32){Value = rd ?? }, //将是否为管理员存⼊ new SqlParameter("@isAdmin",,1){Value = n} }; //进⾏插⼊操作并返回⾃动编号结果 using (SqlDataReader sqlReader = eReader("Insert Into UserInfoTable(Name,Password,IsAdmin) OutPut Values(@name,@password,@isAdmin);", sqlParameters)) { //判断是否获取到数据 if (s) { //得到第⼀条记录 (); //将传⼊参数转换成编号 = 64(0); //返回添加成功 return true; } else { //返回添加失败 return false; } } } /// ///

根据主键获取⼀条记录返回⼀个⽤户表数据模型对象 ///

/// 编号 /// 如果查找到此记录就返回⽤户表数据模型对象,否则返回null public UserInfoTableMod GetModel(long id) { //创建存储参数的数组 SqlParameter[] sqlParameters = new[] { //将编号存⼊ new SqlParameter("@id",,8){Value = id} }; //执⾏⼀条查找SQL命令 using (SqlDataReader sqlReader = eReader("Select Top 1 Id,Name,Password,IsAdmin From UserInfoTable Where Id = @id;",

sqlParameters)) { //判断是否查找到数据 if (s) { //得到第⼀条数据 (); //创建⼀个⽤户表数据模型对象 UserInfoTableMod userInfoTableMod = new UserInfoTableMod(); //存储查询到的编号数据 = 64(0); //存储查询到的姓名数据 = ing(1); //存储查询到的密码(MD5)数据 rd = ing(2); //存储查询到的是否为管理员数据 n = lean(3); //将⽤户表数据模型对象返回 return userInfoTableMod; } } //返回null return null; } ///

///

根据主键删除⼀条记录 ///

/// 编号 /// 返回是否删除成功,为true删除成功,为false删除失败 public bool Delete(long id) { //创建存储参数的数组 SqlParameter[] sqlParameters = new[] { //将编号存⼊ new SqlParameter("@id",,8){Value = id} }; //执⾏⼀条按照编号删除记录语句,并返回是否删除成功 return eNonQuery("Delete From UserInfoTable Where Id = @id;", sqlParameters) > 0; } /// ///

判断是否有此主键对应的记录 ///

/// 编号 /// 返回是否有此对应的记录,为true代表有此记录,为false代表没有此记录 public bool Exists(long id) { //创建存储参数的数组 SqlParameter[] sqlParameters = new[] { //将[编号]存⼊ new SqlParameter("@id",,8){Value = id} }; //执⾏查询语句,并返回是否有此记录 return (int)eScalar("Select Count(*) From UserInfoTable Where Id = @id;", sqlParameters) > 0; } /// ///

更新数据 ///

/// ⽤户表 /// 返回是否更新成功,为true成功为false失败 public bool Update(UserInfoTableMod userInfoTableMod) { //创建存储参数的数组 SqlParameter[] sqlParameters = new[] { //将编号存⼊ new SqlParameter("@id",,8){Value = }, //将姓名存⼊ new SqlParameter("@name",ar,128){Value = ?? }, //将密码(MD5)存⼊ new SqlParameter("@password",,32){Value = rd ?? }, //将是否为管理员存⼊ new SqlParameter("@isAdmin",,1){Value = n} }; //执⾏更新语句,并返回是否更新完成 return eNonQuery("Update UserInfoTable Set Name = @name,Password = @password,IsAdmin = @isAdmin Where Id = @id;", sqlParameters) > 0; } /// ///

判断是否有此记录 ///

/// 验证的⽤户表数据模型对象 /// 返回是否有此记录,为true代表有此记录,为false代表没有此记录 public bool Exists(UserInfoTableMod userInfoTableMod) { //创建存储参数的数组 SqlParameter[] sqlParameters = new[] { //将编号存⼊ new SqlParameter("@id",,8){Value = }, //将姓名存⼊ new SqlParameter("@name",ar,128){Value = ?? }, //将密码(MD5)存⼊ new SqlParameter("@password",,32){Value = rd ?? }, //将是否为管理员存⼊ new SqlParameter("@isAdmin",,1){Value = n} }; //执⾏查询语句,并返回是否有此记录 return (int)eScalar("Select Count(*) From UserInfoTable Where Id = @id And Name = @name And Password = @password And IsAdmin = @isAdmin;", sqlParameters) > 0; } /// ///

⾃定义查询判断是否有匹配记录【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件语句(SQL),填空为:【判断数据库是否有记录】 /// SQL参数对象 /// 返回是否1有匹配记录,返回true为有匹配,返回false为没有匹配 public bool Exists(string where, params SqlParameter[] sqlParameters) { //创建存储执⾏语句的字符串 string sql = OrWhiteSpace(where) ? "Select Count(*) From UserInfoTable;" : "Select Count(*) From UserInfoTable Where " + where; //返回执⾏完成所得到的数据集合数量并判断是否有超过⼀条? return (int)eScalar(sql, sqlParameters) > 0; } /// ///

⾃定义删除【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 删除条件 /// 所需SQL参数对象数组 /// 是否删除成功,为true成功,为false失败 public bool Delete(string where, params SqlParameter[] sqlParameters) { //创建存储执⾏语句的字符串 string sql = OrWhiteSpace(where) ? "Delete From UserInfoTable;" : "Delete From UserInfoTable Where " + where; //执⾏删除语句,并返回是否删除成功 //执⾏删除语句,并返回是否删除成功 return eNonQuery(sql, sqlParameters) > 0; } /// ///

⾃定义查找【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件 /// 所需SQL参数对象数组 /// 查询到的[会员名称]数据模型对象集合 public List GetModelList(string where, params SqlParameter[] sqlParameters) { //创建存储[会员名称]数据模型对象的集合 List list = new List(); //创建存储执⾏语句的字符串 string sql = OrWhiteSpace(where) ? "Select Id,Name,Password,IsAdmin From UserInfoTable;" : "Select Id,Name,Password,IsAdmin From UserInfoTable Where " + where; //执⾏查找语句 using (SqlDataReader sqlReader = eReader(sql, sqlParameters)) { //判断是否查询到数据 if (s) { //循环查询数据 while (()) { //创建⼀个⽤户表数据模型对象 UserInfoTableMod userInfoTableMod = new UserInfoTableMod(); //存储查询到的编号数据 = 64(0); //存储查询到的姓名数据 = ing(1); //存储查询到的密码(MD5)数据 rd = ing(2); //存储查询到的是否为管理员数据 n = lean(3); //将⽤户表数据模型对象存储到集合中 (userInfoTableMod); } } } //返回查找到的⽤户表对象的集合 return list; } /// ///

⾃定义查询出匹配记录有多少条【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件 /// 所需SQL参数对象数组 /// 匹配记录数量 public int GetCount(string where, params SqlParameter[] sqlParameters) { //创建存储执⾏语句的字符串 string sql = OrWhiteSpace(where) ? "Select Count(*) From UserInfoTable;" : "Select Count(*) From UserInfoTable Where " + where; //返回执⾏完成所得到的数据集合 return (int)eScalar(sql, sqlParameters); } /// ///

分页获取数据【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件语句(SQL),没有填空【获取所有数据】【条件结尾不要加“;”符号否则会出错!】 /// 按照什么字段排序 /// 按照什么字段排序 /// 是否是降序排序 /// 开始索引【从零开始】 /// 结束索引【包括当前索引指向记录】 /// 所需SQL参数对象数组 /// 查询到的⽤户表数据模型对象集合 public List GetListByPage(string where, string orderby, bool isDesc, int startIndex, int endIndex, params SqlParameter[] sqlParameters) { //判断传⼊的条件是否为“;”如果是就移除 if (!OrEmpty(where) && where[ - 1] == ';') //移除最后⼀个 where = ( - 1); //创建存储⽤户表数据模型对象的集合 List list = new List(); //合成SQL查询语句 string sql = OrWhiteSpace(where) ? "Select * From (Select * ,Rn=row_number() Over(Order By " + orderby + " " + (isDesc ? "Desc" : "Asc") + ") From UserInfoTable) As t Where -1 Between " + ng() + " And " + ng() + ";" : "Select * From (Select * ,Rn=row_number() Over(Order By " + orderby + " " + (isDesc ? "Desc" : "Asc") + ") From UserInfoTable Where " + //将条件存⼊内查询,⽽⾮外查询 where + ") As t Where -1 Between " + ng() + " And " + ng() + ";"; //执⾏查找语句 using (SqlDataReader sqlReader = eReader(sql, sqlParameters)) { //判断是否查询到数据 if (s) { //循环查询数据 while (()) { //创建⼀个⽤户表数据模型对象 UserInfoTableMod userInfoTableMod = new UserInfoTableMod(); //存储查询到的编号数据 = 64(0); //存储查询到的姓名数据 = ing(1); //存储查询到的密码(MD5)数据 rd = ing(2); //存储查询到的是否为管理员数据 n = lean(3); //将⽤户表数据模型对象存储到集合中 (userInfoTableMod); } } } //返回查询到的信息集合 return list; } /// /// ///

分页获取数据并返回总记录条数【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件语句(SQL),没有填空【获取所有数据】【条件结尾不要加“;”符号否则会出错!】 /// 按照什么字段排序 /// 是否是降序排序 /// 页⾯索引【从零开始】 /// ⼀页显⽰多少数据 /// 所需SQL参数对象数组 /// 查询到的⽤户表数据模型对象集合 public List GetMinutePage(string where, string orderby, bool isDesc, int pageIndex, int pageItemCount, params SqlParameter[] sqlParameters) { //得到开始索引 int beginIndex = pageIndex * pageItemCount; //得到结束索引 int endIndex = (beginIndex + pageItemCount) - 1; //调⽤分页获取数据⽅法并返回结果 return tByPage(where, orderby, isDesc, beginIndex, endIndex, sqlParameters); } /// ///

分页获取数据并返回总记录条数【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件语句(SQL),没有填空【获取所有数据】【条件结尾不要加“;”符号否则会出错!】 /// 按照什么字段排序 /// 是否是降序排序 /// 页⾯索引【从零开始】 /// ⼀页显⽰多少数据 /// 总共有多少条记录 /// 所需SQL参数对象数组 /// 查询到的⽤户表数据模型对象集合 public List GetMinutePage(string where, string orderby, bool isDesc, int pageIndex, int pageItemCount, out int allItmeCount, params SqlParameter[] sqlParameters) { //得到总记录条数 allItmeCount = nt(where, lParameters(sqlParameters)); //得到开始索引 int beginIndex = pageIndex * pageItemCount; //得到结束索引 int endIndex = (beginIndex + pageItemCount) - 1; //调⽤分页获取数据⽅法并返回结果 return tByPage(where, orderby, isDesc, beginIndex, endIndex, sqlParameters); } }}12.⽣成的BLL层代码(⽣成的代码只是进⾏了简单的DAL层封装)using System;using c;using ;using ;using ;using ent;using ;using ;namespace { /// ///

⽤户表业务逻辑对象 ///

public partial class UserInfoTableBll { { /// ///

⽤户表数据访问对象 ///

private readonly UserInfoTableDal _userInfoTableDal = new UserInfoTableDal(); /// ///

实例化⽤户表业务逻辑对象 ///

public UserInfoTableBll() {

} ///

///

查询得到⽤户表表中所有信息 ///

/// 查询到的所有⽤户表数据模型对象集合 public List GetAllModel() { //调⽤数据库访问层查询表中所有信息⽅法并将查询结果返回 return this._Model(); } /// ///

将传⼊的⽤户表数据模型对象数据存⼊数据库,并将⾃动编号值存⼊,传⼊⽤户表数据模型对象中 ///

/// 要进⾏添加到数据库的⽤户表数据模型对象 /// 返回是否添加成功,为true添加成功,为false添加失败 public bool Add(UserInfoTableMod userInfoTableMod) { //调⽤数据访问层的添加⽅法并返回是否添加成功 return this._(userInfoTableMod); } /// ///

根据主键获取⼀条记录返回⼀个⽤户表数据模型对象 ///

/// 编号 /// 如果查找到此记录就返回⽤户表数据模型对象,否则返回null public UserInfoTableMod GetModel(long id) { //调⽤数据访问层查询⽅法并将查询结果返回 return this._el(id); } /// ///

根据主键删除⼀条记录 ///

/// 编号 /// 返回是否删除成功,为true删除成功,为false删除失败 public bool Delete(long id) { //调⽤数据访问层删除⽅法删除指定元素并返回是否删除成功 return this._(id); } /// ///

判断是否有此主键对应的记录 ///

/// 编号 /// 返回是否有此对应的记录,为true代表有此记录,为false代表没有此记录 public bool Exists(long id) { //调⽤数据访问层判断是否有此记录⽅法并返回结果 return this._(id); } /// ///

更新数据 ///

/// ⽤户表 /// 返回是否更新成功,为true成功为false失败 /// 返回是否更新成功,为true成功为false失败 public bool Update(UserInfoTableMod userInfoTableMod) { //调⽤数据访问层更新数据⽅法并将更新结果返回 return this._(userInfoTableMod); } /// ///

判断是否有此记录 ///

/// 验证的⽤户表数据模型对象 /// 返回是否有此记录,为true代表有此记录,为false代表没有此记录 public bool Exists(UserInfoTableMod userInfoTableMod) { //调⽤数据访问层的判断是否有此记录⽅法并返回判断结果 return this._(userInfoTableMod); } /// ///

⾃定义查询判断是否有匹配记录【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件语句(SQL),填空为:【判断数据库是否有记录】 /// SQL参数对象 /// 返回是否1有匹配记录,返回true为有匹配,返回false为没有匹配 public bool Exists(string where, params SqlParameter[] sqlParameters) { //调⽤数据访问层⽅法 return this._(where, sqlParameters); } /// ///

⾃定义删除 ///

/// 删除条件 /// 所需SQL参数对象数组 /// 是否删除成功,为true成功,为false失败 public bool Delete(string where, params SqlParameter[] sqlParameters) { //调⽤数据访问层的⾃定义删除⽅法并返回删除结果 return this._(where, sqlParameters); } /// ///

⾃定义查找 ///

/// 查询条件 /// 所需SQL参数对象数组 /// 查询到的[会员名称]数据模型对象集合 public List GetModelList(string where, params SqlParameter[] sqlParameters) { //调⽤数据访问层的⾃定义查找⽅法并将查找结果返回 return this._elList(where,sqlParameters); } /// ///

⾃定义查询出匹配记录有多少条 ///

/// 查询条件 /// 所需SQL参数对象数组 /// 匹配记录数量 public int GetCount(string where, params SqlParameter[] sqlParameters) { //调⽤数据访问层⾃定义查询出匹配记录有多少条⽅法并将结果返回 return this._nt(where,sqlParameters); } /// ///

分页获取数据 ///

/// 查询条件语句(SQL),没有填空【获取所有数据】 /// 按照什么字段排序 /// 是否是降序排序 /// 是否是降序排序 /// 开始索引 /// 结束索引 /// 所需SQL参数对象数组 /// 查询到的⽤户表数据模型对象集合 public List GetListByPage(string where, string orderby, bool isDesc, int startIndex, int endIndex, params SqlParameter[] sqlParameters) { //调⽤数据访问层分页获取数据⽅法并将查询到的数据返回 return this._tByPage(where,orderby,isDesc,startIndex,endIndex,sqlParameters); } /// ///

分页获取数据并返回总记录条数 ///

/// 查询条件语句(SQL),没有填空【获取所有数据】【条件结尾不要加“;”符号否则会出错!】 /// 按照什么字段排序 /// 是否是降序排序 /// 页⾯索引【从零开始】 /// ⼀页显⽰多少数据 /// 所需SQL参数对象数组 /// 查询到的⽤户表数据模型对象集合 public List GetMinutePage(string where, string orderby, bool isDesc, int pageIndex, int pageItemCount, params SqlParameter[] sqlParameters) { //调⽤数据访问层分页获取数据⽅法 return this._utePage(where, orderby, isDesc, pageIndex, pageItemCount, sqlParameters); } /// ///

分页获取数据并返回总记录条数 ///

/// 查询条件语句(SQL),没有填空【获取所有数据】【条件结尾不要加“;”符号否则会出错!】 /// 按照什么字段排序 /// 是否是降序排序 /// 页⾯索引【从零开始】 /// ⼀页显⽰多少数据 /// 总共有多少条记录 /// 所需SQL参数对象数组 /// 查询到的⽤户表数据模型对象集合 public List GetMinutePage(string where, string orderby, bool isDesc, int pageIndex, int pageItemCount, out int allItmeCount, params SqlParameter[] sqlParameters) { //调⽤数据访问层分页获取数据⽅法 return this._utePage(where, orderby, isDesc, pageIndex, pageItemCount, out allItmeCount, sqlParameters); } }}

2023年6月21日发(作者:)

C#实现的简单三层架构代码⽣成器(开源)C# 实现的简单三层架构代码⽣成器(开源)使⽤教程1.登录你的数据库服务器2.编辑页⾯,可以在此页⾯进⾏配置⽣成的数据库、⽣成表,以及各个层⽣成得到后缀名称,表注释字段注释等等3.选择需要⽣成的表4.设置命名空间、数据访问类名称,去除表名称前缀,还有各个层的表名称后缀,去除各个表的列名称前缀5.设置表注释,列字段注释6.选择⽣成代码的位置7.点击⽣成按钮⽣成代码8.⽣成的代码⽂件9.⽣成的表结构图10.⽣成的Model代码using System;using c;using ;using ;namespace { ///

///

⽤户表数据模型对象 ///

[Serializable] public partial class UserInfoTableMod { /// ///

初始化⽤户表数据模型对象 ///

public UserInfoTableMod() {

} ///

///

初始化⽤户表数据模型对象并给所有字段赋值 ///

/// 编号 /// 姓名 /// 密码(MD5) /// 是否为管理员 public UserInfoTableMod(long id,string name,string password,bool isAdmin) { //给编号字段赋值 = id; //给姓名字段赋值 = name; //给密码(MD5)字段赋值 rd = password; //给是否为管理员字段赋值 n = isAdmin; }

//属性存储数据的变量 private long _id; private string _name; private string _password; private bool _isAdmin;

///

///

编号 ///

public long Id { get { return this._id; } set { this._id = value; } } /// ///

姓名 ///

public string Name { get { return this._name; } set { this._name = value; } } /// ///

密码(MD5) ///

///
public string Password { get { return this._password; } set { this._password = value; } } /// ///

是否为管理员 ///

public bool IsAdmin { get { return this._isAdmin; } set { this._isAdmin = value; } }

///

///

对⽐两个⽤户表数据模型对象是否⼀致 ///

/// 要进⾏⽐对的⽤户表数据模型对象 /// 返回是否⼀致,为true⼀致,为false不⼀致 public override bool Equals(object obj) { //判断传⼊对象是否为null if (obj == null) return false; //将传⼊对象转换成⽤户表数据模型对象 UserInfoTableMod userInfoTableMod = obj as UserInfoTableMod; //判断是否转换成功 if (userInfoTableMod == null) return false; //进⾏匹配属性的值 return //判断编号是否⼀致 == && //判断姓名是否⼀致 == && //判断密码(MD5)是否⼀致 rd == rd && //判断是否为管理员是否⼀致 n == n; } /// ///

将当前⽤户表数据模型对象转换成哈希码 ///

/// 哈希值 public override int GetHashCode() { //将⽤户表数据模型对象的属性进⾏按位异或运算处理得到哈希码并返回 return //将编号进⾏按位异或运算处理 hCode() ^ //将姓名进⾏按位异或运算处理 ( == null ? 2147483647 : hCode()) ^ //将密码(MD5)进⾏按位异或运算处理 (rd == null ? 2147483647 : hCode()) ^ //将是否为管理员进⾏按位异或运算处理 hCode(); } /// ///

将当前⽤户表数据模型对象转换成字符串副本【仅显⽰在SQL中不能为空的列】 ///

/// 字符串形式副本 public override string ToString() { //将当前⽤户表数据模型对象转换成字符串副本 return "[" + //将编号转换成字符串 //将编号转换成字符串 + "," + //将姓名转换成字符串 + "," + //将密码(MD5)转换成字符串 rd + "," + //将是否为管理员转换成字符串 n + "]"; } }}11.⽣成的DAL层代码using System;using c;using ;using ent;using ;using uration;using ;using ;namespace { /// ///

⽤户表数据访问对象 ///

public partial class UserInfoTableDal { /// ///

实例化⽤户表数据访问对象 ///

public UserInfoTableDal() {

} ///

///

查询得到⽤户表表中所有信息 ///

/// 查询到的所有⽤户表数据模型对象集合 public List GetAllModel() { //创建存储查找到的⽤户表表中信息集合 List list = new List(); //使⽤查询语句查询出所有信息 using (SqlDataReader sqlReader = eReader("Select Id,Name,Password,IsAdmin From UserInfoTable;")) { //判断是否查询到了数据 if (s) { //循环得到数据 while (()) { //创建⼀个⽤户表数据模型对象 UserInfoTableMod userInfoTableMod = new UserInfoTableMod(); //存储查询到的编号数据 = 64(0); //存储查询到的姓名数据 = ing(1); //存储查询到的密码(MD5)数据 rd = ing(2); //存储查询到的是否为管理员数据 n = lean(3); //将⽤户表数据模型对象存储到集合中 (userInfoTableMod); } } } //返回查询到的信息集合 return list; } /// ///

将传⼊的⽤户表数据模型对象数据存⼊数据库,并将⾃动编号值存⼊,传⼊⽤户表数据模型对象中 ///

/// 要进⾏添加到数据库的⽤户表数据模型对象 /// 返回是否添加成功,为true添加成功,为false添加失败 public bool Add(UserInfoTableMod userInfoTableMod) { //创建存储参数的数组 SqlParameter[] sqlParameters = new[] { //将姓名存⼊ new SqlParameter("@name",ar,128){Value = ?? }, //将密码(MD5)存⼊ new SqlParameter("@password",,32){Value = rd ?? }, //将是否为管理员存⼊ new SqlParameter("@isAdmin",,1){Value = n} }; //进⾏插⼊操作并返回⾃动编号结果 using (SqlDataReader sqlReader = eReader("Insert Into UserInfoTable(Name,Password,IsAdmin) OutPut Values(@name,@password,@isAdmin);", sqlParameters)) { //判断是否获取到数据 if (s) { //得到第⼀条记录 (); //将传⼊参数转换成编号 = 64(0); //返回添加成功 return true; } else { //返回添加失败 return false; } } } /// ///

根据主键获取⼀条记录返回⼀个⽤户表数据模型对象 ///

/// 编号 /// 如果查找到此记录就返回⽤户表数据模型对象,否则返回null public UserInfoTableMod GetModel(long id) { //创建存储参数的数组 SqlParameter[] sqlParameters = new[] { //将编号存⼊ new SqlParameter("@id",,8){Value = id} }; //执⾏⼀条查找SQL命令 using (SqlDataReader sqlReader = eReader("Select Top 1 Id,Name,Password,IsAdmin From UserInfoTable Where Id = @id;",

sqlParameters)) { //判断是否查找到数据 if (s) { //得到第⼀条数据 (); //创建⼀个⽤户表数据模型对象 UserInfoTableMod userInfoTableMod = new UserInfoTableMod(); //存储查询到的编号数据 = 64(0); //存储查询到的姓名数据 = ing(1); //存储查询到的密码(MD5)数据 rd = ing(2); //存储查询到的是否为管理员数据 n = lean(3); //将⽤户表数据模型对象返回 return userInfoTableMod; } } //返回null return null; } ///

///

根据主键删除⼀条记录 ///

/// 编号 /// 返回是否删除成功,为true删除成功,为false删除失败 public bool Delete(long id) { //创建存储参数的数组 SqlParameter[] sqlParameters = new[] { //将编号存⼊ new SqlParameter("@id",,8){Value = id} }; //执⾏⼀条按照编号删除记录语句,并返回是否删除成功 return eNonQuery("Delete From UserInfoTable Where Id = @id;", sqlParameters) > 0; } /// ///

判断是否有此主键对应的记录 ///

/// 编号 /// 返回是否有此对应的记录,为true代表有此记录,为false代表没有此记录 public bool Exists(long id) { //创建存储参数的数组 SqlParameter[] sqlParameters = new[] { //将[编号]存⼊ new SqlParameter("@id",,8){Value = id} }; //执⾏查询语句,并返回是否有此记录 return (int)eScalar("Select Count(*) From UserInfoTable Where Id = @id;", sqlParameters) > 0; } /// ///

更新数据 ///

/// ⽤户表 /// 返回是否更新成功,为true成功为false失败 public bool Update(UserInfoTableMod userInfoTableMod) { //创建存储参数的数组 SqlParameter[] sqlParameters = new[] { //将编号存⼊ new SqlParameter("@id",,8){Value = }, //将姓名存⼊ new SqlParameter("@name",ar,128){Value = ?? }, //将密码(MD5)存⼊ new SqlParameter("@password",,32){Value = rd ?? }, //将是否为管理员存⼊ new SqlParameter("@isAdmin",,1){Value = n} }; //执⾏更新语句,并返回是否更新完成 return eNonQuery("Update UserInfoTable Set Name = @name,Password = @password,IsAdmin = @isAdmin Where Id = @id;", sqlParameters) > 0; } /// ///

判断是否有此记录 ///

/// 验证的⽤户表数据模型对象 /// 返回是否有此记录,为true代表有此记录,为false代表没有此记录 public bool Exists(UserInfoTableMod userInfoTableMod) { //创建存储参数的数组 SqlParameter[] sqlParameters = new[] { //将编号存⼊ new SqlParameter("@id",,8){Value = }, //将姓名存⼊ new SqlParameter("@name",ar,128){Value = ?? }, //将密码(MD5)存⼊ new SqlParameter("@password",,32){Value = rd ?? }, //将是否为管理员存⼊ new SqlParameter("@isAdmin",,1){Value = n} }; //执⾏查询语句,并返回是否有此记录 return (int)eScalar("Select Count(*) From UserInfoTable Where Id = @id And Name = @name And Password = @password And IsAdmin = @isAdmin;", sqlParameters) > 0; } /// ///

⾃定义查询判断是否有匹配记录【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件语句(SQL),填空为:【判断数据库是否有记录】 /// SQL参数对象 /// 返回是否1有匹配记录,返回true为有匹配,返回false为没有匹配 public bool Exists(string where, params SqlParameter[] sqlParameters) { //创建存储执⾏语句的字符串 string sql = OrWhiteSpace(where) ? "Select Count(*) From UserInfoTable;" : "Select Count(*) From UserInfoTable Where " + where; //返回执⾏完成所得到的数据集合数量并判断是否有超过⼀条? return (int)eScalar(sql, sqlParameters) > 0; } /// ///

⾃定义删除【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 删除条件 /// 所需SQL参数对象数组 /// 是否删除成功,为true成功,为false失败 public bool Delete(string where, params SqlParameter[] sqlParameters) { //创建存储执⾏语句的字符串 string sql = OrWhiteSpace(where) ? "Delete From UserInfoTable;" : "Delete From UserInfoTable Where " + where; //执⾏删除语句,并返回是否删除成功 //执⾏删除语句,并返回是否删除成功 return eNonQuery(sql, sqlParameters) > 0; } /// ///

⾃定义查找【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件 /// 所需SQL参数对象数组 /// 查询到的[会员名称]数据模型对象集合 public List GetModelList(string where, params SqlParameter[] sqlParameters) { //创建存储[会员名称]数据模型对象的集合 List list = new List(); //创建存储执⾏语句的字符串 string sql = OrWhiteSpace(where) ? "Select Id,Name,Password,IsAdmin From UserInfoTable;" : "Select Id,Name,Password,IsAdmin From UserInfoTable Where " + where; //执⾏查找语句 using (SqlDataReader sqlReader = eReader(sql, sqlParameters)) { //判断是否查询到数据 if (s) { //循环查询数据 while (()) { //创建⼀个⽤户表数据模型对象 UserInfoTableMod userInfoTableMod = new UserInfoTableMod(); //存储查询到的编号数据 = 64(0); //存储查询到的姓名数据 = ing(1); //存储查询到的密码(MD5)数据 rd = ing(2); //存储查询到的是否为管理员数据 n = lean(3); //将⽤户表数据模型对象存储到集合中 (userInfoTableMod); } } } //返回查找到的⽤户表对象的集合 return list; } /// ///

⾃定义查询出匹配记录有多少条【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件 /// 所需SQL参数对象数组 /// 匹配记录数量 public int GetCount(string where, params SqlParameter[] sqlParameters) { //创建存储执⾏语句的字符串 string sql = OrWhiteSpace(where) ? "Select Count(*) From UserInfoTable;" : "Select Count(*) From UserInfoTable Where " + where; //返回执⾏完成所得到的数据集合 return (int)eScalar(sql, sqlParameters); } /// ///

分页获取数据【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件语句(SQL),没有填空【获取所有数据】【条件结尾不要加“;”符号否则会出错!】 /// 按照什么字段排序 /// 按照什么字段排序 /// 是否是降序排序 /// 开始索引【从零开始】 /// 结束索引【包括当前索引指向记录】 /// 所需SQL参数对象数组 /// 查询到的⽤户表数据模型对象集合 public List GetListByPage(string where, string orderby, bool isDesc, int startIndex, int endIndex, params SqlParameter[] sqlParameters) { //判断传⼊的条件是否为“;”如果是就移除 if (!OrEmpty(where) && where[ - 1] == ';') //移除最后⼀个 where = ( - 1); //创建存储⽤户表数据模型对象的集合 List list = new List(); //合成SQL查询语句 string sql = OrWhiteSpace(where) ? "Select * From (Select * ,Rn=row_number() Over(Order By " + orderby + " " + (isDesc ? "Desc" : "Asc") + ") From UserInfoTable) As t Where -1 Between " + ng() + " And " + ng() + ";" : "Select * From (Select * ,Rn=row_number() Over(Order By " + orderby + " " + (isDesc ? "Desc" : "Asc") + ") From UserInfoTable Where " + //将条件存⼊内查询,⽽⾮外查询 where + ") As t Where -1 Between " + ng() + " And " + ng() + ";"; //执⾏查找语句 using (SqlDataReader sqlReader = eReader(sql, sqlParameters)) { //判断是否查询到数据 if (s) { //循环查询数据 while (()) { //创建⼀个⽤户表数据模型对象 UserInfoTableMod userInfoTableMod = new UserInfoTableMod(); //存储查询到的编号数据 = 64(0); //存储查询到的姓名数据 = ing(1); //存储查询到的密码(MD5)数据 rd = ing(2); //存储查询到的是否为管理员数据 n = lean(3); //将⽤户表数据模型对象存储到集合中 (userInfoTableMod); } } } //返回查询到的信息集合 return list; } /// /// ///

分页获取数据并返回总记录条数【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件语句(SQL),没有填空【获取所有数据】【条件结尾不要加“;”符号否则会出错!】 /// 按照什么字段排序 /// 是否是降序排序 /// 页⾯索引【从零开始】 /// ⼀页显⽰多少数据 /// 所需SQL参数对象数组 /// 查询到的⽤户表数据模型对象集合 public List GetMinutePage(string where, string orderby, bool isDesc, int pageIndex, int pageItemCount, params SqlParameter[] sqlParameters) { //得到开始索引 int beginIndex = pageIndex * pageItemCount; //得到结束索引 int endIndex = (beginIndex + pageItemCount) - 1; //调⽤分页获取数据⽅法并返回结果 return tByPage(where, orderby, isDesc, beginIndex, endIndex, sqlParameters); } /// ///

分页获取数据并返回总记录条数【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件语句(SQL),没有填空【获取所有数据】【条件结尾不要加“;”符号否则会出错!】 /// 按照什么字段排序 /// 是否是降序排序 /// 页⾯索引【从零开始】 /// ⼀页显⽰多少数据 /// 总共有多少条记录 /// 所需SQL参数对象数组 /// 查询到的⽤户表数据模型对象集合 public List GetMinutePage(string where, string orderby, bool isDesc, int pageIndex, int pageItemCount, out int allItmeCount, params SqlParameter[] sqlParameters) { //得到总记录条数 allItmeCount = nt(where, lParameters(sqlParameters)); //得到开始索引 int beginIndex = pageIndex * pageItemCount; //得到结束索引 int endIndex = (beginIndex + pageItemCount) - 1; //调⽤分页获取数据⽅法并返回结果 return tByPage(where, orderby, isDesc, beginIndex, endIndex, sqlParameters); } }}12.⽣成的BLL层代码(⽣成的代码只是进⾏了简单的DAL层封装)using System;using c;using ;using ;using ;using ent;using ;using ;namespace { /// ///

⽤户表业务逻辑对象 ///

public partial class UserInfoTableBll { { /// ///

⽤户表数据访问对象 ///

private readonly UserInfoTableDal _userInfoTableDal = new UserInfoTableDal(); /// ///

实例化⽤户表业务逻辑对象 ///

public UserInfoTableBll() {

} ///

///

查询得到⽤户表表中所有信息 ///

/// 查询到的所有⽤户表数据模型对象集合 public List GetAllModel() { //调⽤数据库访问层查询表中所有信息⽅法并将查询结果返回 return this._Model(); } /// ///

将传⼊的⽤户表数据模型对象数据存⼊数据库,并将⾃动编号值存⼊,传⼊⽤户表数据模型对象中 ///

/// 要进⾏添加到数据库的⽤户表数据模型对象 /// 返回是否添加成功,为true添加成功,为false添加失败 public bool Add(UserInfoTableMod userInfoTableMod) { //调⽤数据访问层的添加⽅法并返回是否添加成功 return this._(userInfoTableMod); } /// ///

根据主键获取⼀条记录返回⼀个⽤户表数据模型对象 ///

/// 编号 /// 如果查找到此记录就返回⽤户表数据模型对象,否则返回null public UserInfoTableMod GetModel(long id) { //调⽤数据访问层查询⽅法并将查询结果返回 return this._el(id); } /// ///

根据主键删除⼀条记录 ///

/// 编号 /// 返回是否删除成功,为true删除成功,为false删除失败 public bool Delete(long id) { //调⽤数据访问层删除⽅法删除指定元素并返回是否删除成功 return this._(id); } /// ///

判断是否有此主键对应的记录 ///

/// 编号 /// 返回是否有此对应的记录,为true代表有此记录,为false代表没有此记录 public bool Exists(long id) { //调⽤数据访问层判断是否有此记录⽅法并返回结果 return this._(id); } /// ///

更新数据 ///

/// ⽤户表 /// 返回是否更新成功,为true成功为false失败 /// 返回是否更新成功,为true成功为false失败 public bool Update(UserInfoTableMod userInfoTableMod) { //调⽤数据访问层更新数据⽅法并将更新结果返回 return this._(userInfoTableMod); } /// ///

判断是否有此记录 ///

/// 验证的⽤户表数据模型对象 /// 返回是否有此记录,为true代表有此记录,为false代表没有此记录 public bool Exists(UserInfoTableMod userInfoTableMod) { //调⽤数据访问层的判断是否有此记录⽅法并返回判断结果 return this._(userInfoTableMod); } /// ///

⾃定义查询判断是否有匹配记录【建议只给数据访问层内部使⽤!要使⽤请重新封装!】 ///

/// 查询条件语句(SQL),填空为:【判断数据库是否有记录】 /// SQL参数对象 /// 返回是否1有匹配记录,返回true为有匹配,返回false为没有匹配 public bool Exists(string where, params SqlParameter[] sqlParameters) { //调⽤数据访问层⽅法 return this._(where, sqlParameters); } /// ///

⾃定义删除 ///

/// 删除条件 /// 所需SQL参数对象数组 /// 是否删除成功,为true成功,为false失败 public bool Delete(string where, params SqlParameter[] sqlParameters) { //调⽤数据访问层的⾃定义删除⽅法并返回删除结果 return this._(where, sqlParameters); } /// ///

⾃定义查找 ///

/// 查询条件 /// 所需SQL参数对象数组 /// 查询到的[会员名称]数据模型对象集合 public List GetModelList(string where, params SqlParameter[] sqlParameters) { //调⽤数据访问层的⾃定义查找⽅法并将查找结果返回 return this._elList(where,sqlParameters); } /// ///

⾃定义查询出匹配记录有多少条 ///

/// 查询条件 /// 所需SQL参数对象数组 /// 匹配记录数量 public int GetCount(string where, params SqlParameter[] sqlParameters) { //调⽤数据访问层⾃定义查询出匹配记录有多少条⽅法并将结果返回 return this._nt(where,sqlParameters); } /// ///

分页获取数据 ///

/// 查询条件语句(SQL),没有填空【获取所有数据】 /// 按照什么字段排序 /// 是否是降序排序 /// 是否是降序排序 /// 开始索引 /// 结束索引 /// 所需SQL参数对象数组 /// 查询到的⽤户表数据模型对象集合 public List GetListByPage(string where, string orderby, bool isDesc, int startIndex, int endIndex, params SqlParameter[] sqlParameters) { //调⽤数据访问层分页获取数据⽅法并将查询到的数据返回 return this._tByPage(where,orderby,isDesc,startIndex,endIndex,sqlParameters); } /// ///

分页获取数据并返回总记录条数 ///

/// 查询条件语句(SQL),没有填空【获取所有数据】【条件结尾不要加“;”符号否则会出错!】 /// 按照什么字段排序 /// 是否是降序排序 /// 页⾯索引【从零开始】 /// ⼀页显⽰多少数据 /// 所需SQL参数对象数组 /// 查询到的⽤户表数据模型对象集合 public List GetMinutePage(string where, string orderby, bool isDesc, int pageIndex, int pageItemCount, params SqlParameter[] sqlParameters) { //调⽤数据访问层分页获取数据⽅法 return this._utePage(where, orderby, isDesc, pageIndex, pageItemCount, sqlParameters); } /// ///

分页获取数据并返回总记录条数 ///

/// 查询条件语句(SQL),没有填空【获取所有数据】【条件结尾不要加“;”符号否则会出错!】 /// 按照什么字段排序 /// 是否是降序排序 /// 页⾯索引【从零开始】 /// ⼀页显⽰多少数据 /// 总共有多少条记录 /// 所需SQL参数对象数组 /// 查询到的⽤户表数据模型对象集合 public List GetMinutePage(string where, string orderby, bool isDesc, int pageIndex, int pageItemCount, out int allItmeCount, params SqlParameter[] sqlParameters) { //调⽤数据访问层分页获取数据⽅法 return this._utePage(where, orderby, isDesc, pageIndex, pageItemCount, out allItmeCount, sqlParameters); } }}