三层架构,步步为营 .NET三层架构解析 五、DAL与IDAL的设计

IDAL:数据访问层接口,接口是一种系列‘功能’的声明或名单,接口没有实现细节.
DAL:数据访问层,主要用来做数据逻辑处理,具体为业务逻辑层或表示层提供数据服务。
先来看下IDAL的设计:
ICustom.cs
public interface ICustom { /// /// 添加一条记录 /// ///
/// int Addcustom(custom Custom); /// /// 概据帐户名获取用户的信息 /// ///
/// custom Getsinglecname(string nename); /// /// 更样用户的密码 /// ///
void Updatepassword(custom Custom); /// /// 获取用户列表 /// /// List Getcustom(); /// /// 根据ID删除用户记录 /// ///
void Deletecustom(int nid); /// /// 根据ID获取用户信息 /// ///
/// custom Getcustomer(int nid); /// /// 更新用户信息 /// ///
void updatecustom(custom Custom); /// /// 根据部门ID获取部门员工列表 /// ///
/// List Getdepartcustom(int nid); /// /// 把SqlDataReader转化成Custom /// ///
/// custom ConvertDrToCustom(SqlDataReader dr); /// /// 把SqlDataReader转化成List Custom /// ///
/// List ConvertDrToCustomList(SqlDataReader dr); }
与之想对应的customSQL.cs设计:
public class customSQL:ICustom { public int Addcustom(custom Custom) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter[] ParamList = { sqlHelper.CreateInParam("@cname",SqlDbType.NVarChar,50,Custom.cname), sqlHelper .CreateInParam("@departID",SqlDbType.Int ,4,Custom.departID), sqlHelper .CreateInParam("@age",SqlDbType.Int,4,Custom.age), sqlHelper.CreateInParam("@ename",SqlDbType.NVarChar,50,Custom.ename), sqlHelper.CreateInParam("@password",SqlDbType.NVarChar,50,Custom.password) }; try { return (sqlHelper.RunProc("spInsertCustom", ParamList)); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } } public custom Getsinglecname(string nename) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter[] Paramlist = { sqlHelper.CreateInParam("ename",SqlDbType.NVarChar,50,nename) }; SqlDataReader dr = null; try { sqlHelper.RunProc("spGetsingleename", Paramlist, out dr); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } custom Custom = new custom(); while (dr.Read()) { Custom.id = Int32.Parse(dr["id"].ToString()); Custom.cname = dr["cname"].ToString(); Custom.ename = dr["ename"].ToString(); Custom.departID = int.Parse(dr["departID"].ToString()); Custom.password = dr["password"].ToString(); Custom.age = int.Parse(dr["age"].ToString()); } dr.Dispose(); return Custom; } public void Updatepassword(custom Custom) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter[] ParamList = { sqlHelper.CreateInParam("@id",SqlDbType.Int,4,Custom.id), sqlHelper.CreateInParam("@cname",SqlDbType.NVarChar,50,Custom.cname), sqlHelper .CreateInParam("@departID",SqlDbType.Int ,4,Custom.departID), sqlHelper .CreateInParam("@age",SqlDbType.Int,4,Custom.age), sqlHelper.CreateInParam("@ename",SqlDbType.NVarChar,50,Custom.ename), sqlHelper.CreateInParam("@password",SqlDbType.NVarChar,50,Custom.password) }; try { sqlHelper.RunProc("spUpdatepassword", ParamList); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } } public List Getcustom() { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlDataReader dr = null; try { sqlHelper.RunProc("spGetcustom", out dr); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } return ConvertDrToCustomList(dr); } public void Deletecustom(int nid) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter[] Paramlist = { sqlHelper.CreateInParam("id",SqlDbType.Int,4,nid) }; try { sqlHelper.RunProc("spDeletecustom", Paramlist); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } } public custom Getcustomer(int nid) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter[] Paramlist = { sqlHelper.CreateInParam("id",SqlDbType.Int,4,nid) }; SqlDataReader dr = null; try { sqlHelper.RunProc("spGetcustomer", Paramlist, out dr); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } dr.Dispose(); return ConvertDrToCustom(dr); } public void updatecustom(custom Custom) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter[] ParamList = { sqlHelper.CreateInParam("@id",SqlDbType.Int,4,Custom.id), sqlHelper.CreateInParam("@cname",SqlDbType.NVarChar,50,Custom.cname), sqlHelper .CreateInParam("@departID",SqlDbType.Int ,4,Custom.departID), sqlHelper .CreateInParam("@age",SqlDbType.Int,4,Custom.age), sqlHelper.CreateInParam("@ename",SqlDbType.NVarChar,50,Custom.ename) }; try { sqlHelper.RunProc("spupdatecustom", ParamList); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } } public List Getdepartcustom(int nid) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlDataReader dr = null; SqlParameter[] Paramlist = { sqlHelper.CreateInParam("departID",SqlDbType.Int,4,nid) }; try { sqlHelper.RunProc("spGetdepartcustom", Paramlist, out dr); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } return ConvertDrToCustomList(dr); } public custom ConvertDrToCustom(SqlDataReader dr) { custom Custom = new custom(); while (dr.Read()) { departmentSQL DepartmentSQL = new departmentSQL(); department Department = new department(); Department = DepartmentSQL.Getsingledepartment(Int32.Parse(dr["departID"].ToString())); Custom.id = Int32.Parse(dr["id"].ToString()); Custom.ename = dr["ename"].ToString(); Custom.cname = dr["cname"].ToString(); Custom.age = Int32.Parse(dr["age"].ToString()); Custom.departID = Int32.Parse(dr["departID"].ToString()); Custom.departname = Department.departname; Custom.password = dr["password"].ToString(); } dr.Dispose(); return Custom; } public List ConvertDrToCustomList(SqlDataReader dr) { List Customlist = new List(); while (dr.Read()) { departmentSQL DepartmentSQL = new departmentSQL(); department Department = new department(); Department = DepartmentSQL.Getsingledepartment(Int32.Parse(dr["departID"].ToString())); custom Custom = new custom(); Custom.id = Int32.Parse(dr["id"].ToString()); Custom.ename = dr["ename"].ToString(); Custom.cname = dr["cname"].ToString(); Custom.age = Int32.Parse(dr["age"].ToString()); Custom.departID = Int32.Parse(dr["departID"].ToString()); Custom.departname = Department.departname; Custom.password = dr["password"].ToString(); Customlist.Add(Custom); Custom = null; } dr.Dispose(); return Customlist; } }
接下来再看IDepartment.cs的设计:
public interface IDepartment { /// /// 增加一条部门数据 /// ///
/// int Adddepartment(department Department); /// /// 获取部门列表 /// /// List Getdepartment(); /// /// 把SqlDataReader转化为List Department /// ///
/// List ConvertDrToListDepartment(SqlDataReader dr); /// /// 根据部门ID获取部门信息 /// ///
/// department Getsingledepartment(int nid); /// /// 根据部门名称获取部门信息 /// ///
/// department Getdepartmenter(string ndepartname); /// /// 更新部门信息 /// ///
void Updatepartment(department Department); /// /// 根据ID删除部门信息 /// ///
void Deletedepart(int nid); /// /// 把SqlDataReader转化为department /// ///
/// department ConvertDrToDepartment(SqlDataReader dr); }
与之相对应的departmentSQL.cs的设计:
public class departmentSQL:IDepartment { public int Adddepartment(department Department) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter[] ParamList = { sqlHelper.CreateInParam("@departname",SqlDbType.NVarChar,50,Department.departname), sqlHelper .CreateInParam("@description",SqlDbType.NVarChar,50,Department.description) }; try { return (sqlHelper.RunProc("spInsertDepartment", ParamList)); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } } public List Getdepartment() { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlDataReader dr = null; try { sqlHelper.RunProc("spGetAlldepartment", out dr); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } return ConvertDrToListDepartment(dr); } public List ConvertDrToListDepartment(SqlDataReader dr) { List Departmentlist = new List(); while (dr.Read()) { department Department = new department(); Department.id = Int32.Parse(dr["id"].ToString()); Department.departname = dr["departname"].ToString(); Department.description = dr["description"].ToString(); Departmentlist.Add(Department); Department = null; } dr.Dispose(); return Departmentlist; } public department Getsingledepartment(int nid) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter[] ParamList = { sqlHelper.CreateInParam("@id",SqlDbType.Int,4,nid) }; SqlDataReader dr = null; try { sqlHelper.RunProc("spGetdepartment",ParamList,out dr); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } return ConvertDrToDepartment(dr); } public department Getdepartmenter(string ndepartname) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter[] ParamList = { sqlHelper.CreateInParam("@departname",SqlDbType.NVarChar,50,ndepartname) }; SqlDataReader dr = null; try { sqlHelper.RunProc("spGetdepartmenter", ParamList, out dr); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } return ConvertDrToDepartment(dr); } public void Updatepartment(department Department) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter[] ParamList = { sqlHelper.CreateInParam("@id",SqlDbType.Int,4,Department.id), sqlHelper.CreateInParam("@departname",SqlDbType.NVarChar,50,Department.departname), sqlHelper .CreateInParam("@description",SqlDbType.NVarChar,50,Department.description) }; try { sqlHelper.RunProc("spupdatedepart", ParamList); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } } public void Deletedepart(int nid) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter[] ParamList = { sqlHelper.CreateInParam("@id",SqlDbType.Int,4,nid) }; try { sqlHelper.RunProc("spdeletedepart", ParamList); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } } public department ConvertDrToDepartment(SqlDataReader dr) { department Department = new department(); while (dr.Read()) { Department.id = Int32.Parse(dr["id"].ToString()); Department.departname = dr["departname"].ToString(); Department.description = dr["description"].ToString(); } dr.Dispose(); return Department; } }
DAL层我们就设计完了,接下来我们就开始设计BLL层了,欢迎拍砖.
你的持续关注,就是我不断前进的最好动力.
Tags:  搭建三层架构 三层架构实体类 三层架构的好处 什么是三层架构 三层架构

延伸阅读

最新评论

发表评论