namespace LeiGongModels{ public class Author { /// <summary> /// 作者实体类 /// </summary> public int AuthorId { get; set; } public string TypeName { get; set; } public string LoginAccount { get; set; } public string LoginPwd { get; set; } public string AuthorName { get; set; } public string Phonenumber { get; set; } public string NowAddress { get; set; } }}
05 数据访问模块
按照如下图,添加与实体类对应的三个数据访问类和一个通用数据访问类。
此4个数据访问类均需要引入如下图所示的两个命名空间。
并且除通用数据访问类SQLHelper外,其余3个需要将class前边的internal字段改为public。
06 业务逻辑模块
按照如下图添加与实体类对应的单个业务逻辑类
07 添加引用
数据访问模块LeiGongDAL需要引用-【程序集】-【System.Configuration】
另外项目之间的引用关系可以参考:
添加引用完成后需要重新生成解决方案
08 SQLHelper通用类
通用类代码:
//数据访问类需要引入如下两个命名空间using System.Data;using System.Data.SqlClient;using System.Configuration;namespace LeiGongDAL{ /// <summary> /// 通用数据访问类 /// </summary> internal class SQLHelper { private static string connString = ConfigurationManager.ConnectionStrings["connString"].ToString(); /// <summary> /// 执行insert、update、delete类型的SQL语句 /// </summary> /// <param name="sql"> /// <returns>受影响的行数</returns> /// <exception cref="Exception"></exception> public static int Update(string sql) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(sql,conn); try { conn.Open(); return cmd.ExecuteNonQuery(); } catch (Exception ex) { //可以在这个地方捕获ex对象的相关信息,然后保存到日志文件中 throw new Exception("执行public static int Update(string sql)发生异常:" + ex.Message); } finally { conn.Close(); } } /// <summary> /// 执行单一结果的查询 /// </summary> /// <param name="sql"> /// <returns></returns> /// <exception cref="Exception"></exception> public static object GetSingleResult(string sql) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(sql, conn); try { conn.Open(); return cmd.ExecuteScalar(); } catch (Exception ex) { //可以在这个地方捕获ex对象的相关信息,然后保存到日志文件中 throw new Exception("执行 public static object GetSingleResult(string sql)发生异常:" + ex.Message); } finally { conn.Close(); } } /// <summary> /// 执行一个结果集的查询 /// </summary> /// <param name="sql"> /// <returns></returns> /// <exception cref="Exception"></exception> public static SqlDataReader GetReader(string sql) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(sql, conn); try { conn.Open(); return cmd.ExecuteReader(CommandBehavior.CloseConnection); } catch (Exception ex) { //可以在这个地方捕获ex对象的相关信息,然后保存到日志文件中 throw new Exception("执行public static SqlDataReader GetReader(string sql)发生异常:" + ex.Message); } } }}
09 整体效果
至此通用的三级架构基本搭建完成,剩下的可以根据具体需求,在此基础上做相应的开发。
10 后记
现如今实际项目中已经不用这种架构了,但是对于学习者来说,还是很有必要的。
大家可以以此为基础,学习更多的框架。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!