您的位置:首页 > Web前端 > JQuery

信息发布系统 Jquery+MVC架构开发(5)DAL层

2011-07-24 09:26 766 查看
 跟model层一样,我们同样可以用动软代码生成器来生成DAL层。
这一层主要是数据库的访问,不再多介绍.
需要说明的是我们要把微软的SqlHelper类引入我们的项目,这样我们访问数据库用这个类就够了,关于这个类大伙可以参见微软petshop中的SqlHelper类。
 
1.  首先定义接口
我们创建三个接口:
       
1)  IInfo

InfoResult Add(Info info);
InfoResult Update(Info info);
InfoResult Delete(int infoId);
InfoList GetInfoList(SearchInfo searchInfo);
InfoList GetInfoById(int infoId);
2)  IInfoType
跟上面相同,不再赘述。
3)  IUserInfo
跟上面相同,不再赘述。
 
2.实现这些接口,总结完毕后,我会把代码上传上来,现在暂时把有一部分代码放到这里
     于InfoDal为例:
      using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using System.Linq;using System.Text;using InfoPub.Modal; namespace InfoPub.DAL{    public class InfoDal:IInfo    {        public InfoResult Add(Info model)        {            InfoResult infoResult = new InfoResult();            StringBuilder strSql = new StringBuilder();            try            {                 strSql.Append("insert into Info(");                strSql.Append("InfoId,infoname,InfoContent,TypeId,PictureUrl,CreateId,CreateDate,ModifyDate,AttachMentUrl,IsTop)");                strSql.Append(" values (");                strSql.Append("@InfoId,@infoname,@InfoContent,@TypeId,@PictureUrl,@CreateId,@CreateDate,@ModifyDate,@AttachMentUrl,@IsTop)");                SqlParameter[] parameters = {                                               new SqlParameter("@InfoId", SqlDbType.Int,4),                                               new SqlParameter("@infoname", SqlDbType.NVarChar,200),                                               new SqlParameter("@InfoContent", SqlDbType.Text),                                               new SqlParameter("@TypeId", SqlDbType.Int,4),                                               new SqlParameter("@PictureUrl", SqlDbType.NVarChar,4000),                                               new SqlParameter("@CreateId", SqlDbType.Int,4),                                               new SqlParameter("@CreateDate", SqlDbType.DateTime),                                               new SqlParameter("@ModifyDate", SqlDbType.DateTime),                                               new SqlParameter("@AttachMentUrl", SqlDbType.NVarChar,4000),                                               new SqlParameter("@IsTop", SqlDbType.TinyInt,1)};                 parameters[0].Value = model.InfoId;                parameters[1].Value = model.Infoname;                parameters[2].Value = model.InfoContent;                parameters[3].Value = model.TypeId;                parameters[4].Value = model.PictureUrl;                parameters[5].Value = model.CreateId;                parameters[6].Value = model.CreateDate;                parameters[7].Value = model.ModifyDate;                parameters[8].Value = model.AttachMentUrl;                parameters[9].Value = model.IsTop;                 SqlHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameters);                infoResult.Code = 0;            }            catch (Exception ex)            {                infoResult.Code = 100;                infoResult.Message = ex.Message + ex.StackTrace + ex.InnerException;            }                         return infoResult;        }        public InfoResult Update(Info model)        {            InfoResult infoResult = new InfoResult();            StringBuilder strSql = new StringBuilder();            try            {                strSql.Append("update Info set ");                strSql.Append("infoname=@infoname,");                strSql.Append("InfoContent=@InfoContent,");                strSql.Append("TypeId=@TypeId,");                strSql.Append("PictureUrl=@PictureUrl,");                strSql.Append("CreateId=@CreateId,");                strSql.Append("CreateDate=@CreateDate,");                strSql.Append("ModifyDate=@ModifyDate,");                strSql.Append("AttachMentUrl=@AttachMentUrl,");                strSql.Append("IsTop=@IsTop");                strSql.Append(" where InfoId=@InfoId ");                SqlParameter[] parameters = {                                               new SqlParameter("@infoname", SqlDbType.NVarChar,200),                                               new SqlParameter("@InfoContent", SqlDbType.Text),                                               new SqlParameter("@TypeId", SqlDbType.Int,4),                                               new SqlParameter("@PictureUrl", SqlDbType.NVarChar,4000),                                               new SqlParameter("@CreateId", SqlDbType.Int,4),                                               new SqlParameter("@CreateDate", SqlDbType.DateTime),                                               new SqlParameter("@ModifyDate", SqlDbType.DateTime),                                               new SqlParameter("@AttachMentUrl", SqlDbType.NVarChar,4000),                                               new SqlParameter("@IsTop", SqlDbType.TinyInt,1),                                               new SqlParameter("@InfoId", SqlDbType.Int,4)};                parameters[0].Value = model.Infoname;                parameters[1].Value = model.InfoContent;                parameters[2].Value = model.TypeId;                parameters[3].Value = model.PictureUrl;                parameters[4].Value = model.CreateId;                parameters[5].Value = model.CreateDate;                parameters[6].Value = model.ModifyDate;                parameters[7].Value = model.AttachMentUrl;                parameters[8].Value = model.IsTop;                parameters[9].Value = model.InfoId;                SqlHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameters);                infoResult.Code = 0;             }            catch (Exception ex)            {                infoResult.Code = 100;                infoResult.Message = ex.Message + ex.StackTrace + ex.InnerException;            }             return infoResult;                    }        public InfoResult Delete(int infoId)        {            InfoResult infoResult = new InfoResult();            StringBuilder strSql = new StringBuilder();            try            {                strSql.Append("delete from Info ");                strSql.Append(" where InfoId=@InfoId ");                SqlParameter[] parameters = {                                               new SqlParameter("@InfoId", SqlDbType.Int,4)};                parameters[0].Value = infoId;                SqlHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), parameters);                infoResult.Code = 0;            }            catch (Exception ex)            {                infoResult.Code = 100;                infoResult.Message = ex.Message + ex.StackTrace + ex.InnerException;                            }            return infoResult;        }        // SearchInfo是自定义的查询类        public InfoList GetInfoList(SearchInfo searchInfo)        {            InfoList infoList=new InfoList();            StringBuilder strSql = new StringBuilder();            StringBuilder strwhere=new StringBuilder();            if (!string.IsNullOrEmpty(searchInfo.Infoname))            {                strwhere.Append((string.IsNullOrEmpty(strwhere.ToString()) ? "where " : " and ") + @"infoname like '%'+@infoname+'%' ");            }            if (searchInfo.BeginDate != Convert.ToDateTime("0001/1/1") || searchInfo.EndDate != Convert.ToDateTime("0001/1/1"))            {                strwhere.Append((string.IsNullOrEmpty(strwhere.ToString()) ? "where " : " and ") + @"CreateDate between @startdate and @enddate ");            }            try            {                strSql.Append(@" SELECT count(1) as maxcount from Info " + strwhere.ToString() + "; ");                strSql.Append(@" WITH Row AS                                       (SELECT ROW_NUMBER() OVER(ORDER BY InfoId) AS rownumber, InfoId FROM Info (NOLOCK) "                                            + strwhere.ToString() + ") ");                strSql.Append("select InfoId,infoname,InfoContent,TypeId,PictureUrl,CreateId,CreateDate,ModifyDate,AttachMentUrl,IsTop from Info inner join Row on Info.InfoId=Row.InfoId WHERE rownumber BETWEEN @StartNum AND @StartNum + @pageSize - 1 ");                 SqlParameter[] parameters = {                                               new SqlParameter("@infoname", SqlDbType.NVarChar,200),                                               new SqlParameter("@startdate", SqlDbType.DateTime),                    new SqlParameter("@enddate", SqlDbType.DateTime),                    new SqlParameter("@StartNum",SqlDbType.Int),                     new SqlParameter("@pageSize",SqlDbType.Int)};                parameters[0].Value = searchInfo.Infoname;                parameters[1].Value = searchInfo.BeginDate;                parameters[2].Value = searchInfo.EndDate;                parameters[3].Value = searchInfo.pageInfo.startNum;                parameters[4].Value = searchInfo.pageInfo.pageSize;                 using (IDataReader dataReader = SqlHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters))                {                    if (dataReader.Read())                    {                         PageInfo pageInfo=new PageInfo();                        pageInfo.Max = dataReader.GetInt32(0);                        if (dataReader.NextResult())                        {                            while (dataReader.Read())                            {                                Info info=new Info();                                info = PopulateInfoEntityFromDr(dataReader);                                infoList.infoList.Add(info);                            }                        }                        infoList.infoResult.Code = 0;                    }                    else                    {                        infoList.infoResult.Code = 101;                        infoList.infoResult.Message = "没?找¨°到Ì?相¨¤关?联¢a的Ì?信?息¡é!ê?";                    }                }            }            catch (Exception ex)            {                infoList.infoResult.Code = 100;                infoList.infoResult.Message = ex.Message + ex.StackTrace + ex.InnerException;                           }             return infoList;        }        public InfoList GetInfoById(int infoId)        {            InfoList infoList = new InfoList();            StringBuilder strSql = new StringBuilder();            try            {                strSql.Append("select InfoId,infoname,InfoContent,TypeId,PictureUrl,CreateId,CreateDate,ModifyDate,AttachMentUrl,IsTop from Info ");                strSql.Append(" where InfoId=@InfoId ");                SqlParameter[] parameters = {                                               new SqlParameter("@InfoId", SqlDbType.Int,4)};                parameters[0].Value = infoId;                using (IDataReader dataReader = SqlHelper.ExecuteReader(CommandType.Text, strSql.ToString(), parameters))                {                    if (dataReader.Read())                    {                        Info info=new Info();                        info = PopulateInfoEntityFromDr(dataReader);                        infoList.infoList.Add(info);                        infoList.infoResult.Code = 0;                    }                    else                    {                        infoList.infoResult.Code = 101;                        infoList.infoResult.Message = "没?找¨°到Ì?相¨¤关?联¢a的Ì?信?息¡é!ê?";                    }                }            }            catch (Exception ex)            {                infoList.infoResult.Code = 100;                infoList.infoResult.Message = ex.Message + ex.StackTrace + ex.InnerException;             }             return infoList;         }         /// <summary>        /// 得Ì?到Ì?  info 数ºy据Y实º¦Ì体¬?        /// </summary>        /// <param name="dr">dr</param>        /// <returns>info 数ºy据Y实º¦Ì体¬?</returns>        public Info PopulateInfoEntityFromDr(IDataReader dr)        {            Info Obj = new Info();             Obj.InfoId = ((dr["InfoId"]) == DBNull.Value) ? 0 : Convert.ToInt32(dr["InfoId"]);            Obj.Infoname = dr["infoname"].ToString();            Obj.InfoContent = dr["InfoContent"].ToString();            Obj.TypeId = ((dr["TypeId"]) == DBNull.Value) ? 0 : Convert.ToInt32(dr["TypeId"]);            Obj.PictureUrl = dr["PictureUrl"].ToString();            Obj.CreateId = ((dr["CreateId"]) == DBNull.Value) ? 0 : Convert.ToInt32(dr["CreateId"]);            Obj.CreateDate = ((dr["CreateDate"]) == DBNull.Value) ? Convert.ToDateTime(1900 - 1 - 1) : Convert.ToDateTime(dr["CreateDate"]);            Obj.ModifyDate = ((dr["ModifyDate"]) == DBNull.Value) ? Convert.ToDateTime(1900 - 1 - 1) : Convert.ToDateTime(dr["ModifyDate"]);            Obj.AttachMentUrl = dr["AttachMentUrl"].ToString();            Obj.IsTop = ((dr["IsTop"]) == DBNull.Value) ? Convert.ToByte(0) : Convert.ToByte(dr["IsTop"]);             return Obj;        }     }} 
 
   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: