zoukankan      html  css  js  c++  java
  • [置顶]信息发布系统 Jquery+MVC架构开发(5)DAL层

     

    跟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;

            }

     

        }

    }

     

       

  • 相关阅读:
    Codeforces 101487E
    算法笔记--2-sat
    算法笔记--图的存储之链式前向星
    算法笔记--强连通分量分解
    Uva 11995 I Can Guess the Data Structure!
    算法笔记--米勒-罗宾素数测试
    HDU 5183 Negative and Positive (NP)
    算法笔记--快读(输入外挂)模板
    POJ 3258 River Hopscotch
    HDU 2289 Cup
  • 原文地址:https://www.cnblogs.com/encounter/p/2188757.html
Copyright © 2011-2022 走看看