麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設計 > 正文

我的網絡兼職MVC項目開發(fā)-細說三層

2019-11-14 15:50:45
字體:
來源:轉載
供稿:網友

今天我們來聊一下網站的三層如何搭建起來的(網站第一版的框架)。參考網站:革西網絡

在我剛接觸開發(fā)的時候,三層是用的最多的框架,沒有之一。借助一些代碼生成器,我們能夠很容易的建立三層來,其中的增刪改的方法已經有了,我們只是需要在這些基礎之上,根據(jù)項目的具體的業(yè)務邏輯進行一些代碼的編寫就能實現(xiàn)了。

 

首先來看DAL,涵蓋了在項目中,我們所需要的大部分的方法。看代碼,是這樣寫的:

  1  public  class DAL  2     {  3         #region  BaseDAL  4         SqlDataPRovider SQLProvider = new SqlDataProvider(SqlHelper.GetConnSting());//TODO:這個動態(tài)類是單例模式?  5         /// <summary>  6         ///  得到最大ID  7         /// </summary>  8         /// <param name="table">表名</param>  9         /// <returns></returns> 10         public int GetMaxId(string table) 11         { 12             return SQLProvider.GetMaxID("Id", table); 13         } 14  15         /// <summary> 16         /// 是否存在該記錄 17         /// </summary> 18         /// <param name="Table">表名</param> 19         /// <param name="Id">編號Id</param> 20         /// <returns></returns> 21         public bool Exists(string Table, int Id) 22         { 23             StringBuilder strSql = new StringBuilder(); 24             strSql.AppendFormat("select count(1) from {0}", Table); 25             strSql.Append(" where Id=@Id"); 26             SqlParameter[] parameters = {                   27                     new SqlParameter("@Id", SqlDbType.Int,4) 28             }; 29             parameters[0].Value = Id; 30  31             return SQLProvider.Exists(strSql.ToString(), parameters); 32         } 33  34         /// <summary> 35         /// 增加一條數(shù)據(jù) 36         /// </summary> 37         /// <param name="Field">要插入的字段</param> 38         /// <param name="Models">插入字段的參數(shù)</param> 39         /// <returns></returns> 40         public int Add(string Table, string field, string[] Models) 41         { 42             StringBuilder strSql = new StringBuilder(); 43             strSql.AppendFormat("insert into {0}(", Table); 44             strSql.AppendFormat("{0})", field); 45             strSql.Append(" values ("); 46             strSql.AppendFormat("{0})", SqlParameterHelp.SqlParaValues(field)); 47             strSql.Append(";select @@IDENTITY"); 48  49             object obj = SQLProvider.Execute(strSql.ToString(), SqlParameterHelp.SqlPara(field, Models)); 50             if (obj == null) 51             { 52                 return 0; 53             } 54             else 55             { 56                 return Convert.ToInt32(obj); 57             } 58         } 59         /// <summary> 60         /// 更新一條數(shù)據(jù) 61         /// </summary> 62         /// <param name="id">根據(jù)id修改</param> 63         /// <param name="table">表名</param> 64         /// <param name="fields">修改字段如Id=@Id</param> 65         /// <returns></returns> 66         public bool Update(string id, string table, string fields, string[] Models) 67         { 68             StringBuilder strSql = new StringBuilder(); 69             strSql.AppendFormat("update {0} set ", table); 70             strSql.AppendFormat("{0}", SqlParameterHelp.SqlParaValuesUpdate(fields)); 71             strSql.AppendFormat(" where Id={0}", id); 72  73  74             int rows = SQLProvider.Execute(strSql.ToString(), SqlParameterHelp.SqlPara(fields, Models)); 75             if (rows > 0) 76             { 77                 return true; 78             } 79             else 80             { 81                 return false; 82             } 83         } 84         85        public bool Update(string id, string table, string fields, string Models) 86         { 87             StringBuilder strSql = new StringBuilder(); 88             strSql.AppendFormat("update {0} set {1}={2} where Id={3} ", table, fields, Models,id);  89             int rows = SQLProvider.Execute(strSql.ToString()); 90             if (rows > 0) 91             { 92                 return true; 93             } 94             else 95             { 96                 return false; 97             } 98         } 99 100         /// <summary>101         /// 刪除一條數(shù)據(jù)102         /// </summary>103         /// <param name="Table">表名</param>104         /// <param name="Id">編號</param>105         /// <returns></returns>106         public bool Delete(string Table, int Id)107         {108 109             StringBuilder strSql = new StringBuilder();110             strSql.AppendFormat("delete from {0} ", Table);111             strSql.Append(" where Id=@Id");112             SqlParameter[] parameters = {                   113                     new SqlParameter("@Id", SqlDbType.Int,4)114             };115             parameters[0].Value = Id;116 117             int rows = SQLProvider.Execute(strSql.ToString(), parameters);118             if (rows > 0)119             {120                 return true;121             }122             else123             {124                 return false;125             }126         }127         /// <summary>128         /// 批量刪除數(shù)據(jù)129         /// </summary>130         public bool DeleteList(string table, string Idlist)131         {132             StringBuilder strSql = new StringBuilder();133             strSql.AppendFormat("delete from {0} ", table);134             strSql.Append(" where Id in (" + Idlist + ")  ");135             int rows = SQLProvider.Execute(strSql.ToString());136             if (rows > 0)137             {138                 return true;139             }140             else141             {142                 return false;143             }144         }145 146 147         /// <summary>148         /// 得到一個對象實體149         /// </summary>150         /// <typeparam name="T">實體類型</typeparam>151         /// <param name="Table">表名</param>152         /// <param name="Id">Id</param>153         /// <returns></returns>154         public T GetModles<T>(string Table, int Id) where T : new()155         {156             StringBuilder strSql = new StringBuilder();157             strSql.AppendFormat("select  top 1 * from {0} ", Table);158             strSql.Append(" where Id=@Id");159             SqlParameter[] parameters = {160                     new SqlParameter("@Id", SqlDbType.Int,4)161             };162             parameters[0].Value = Id;163 164             T model = new T();165             DataSet ds = SQLProvider.GetDataset(strSql.ToString(), parameters);166             if (ds.Tables[0].Rows.Count > 0)167             {168                 return DataConvert.DataRowToModel<T>(ds.Tables[0].Rows[0]);169             }170             else171             {172                 return default(T);173             }174         }175 176 177 178         /// <summary>179         /// sql獲得數(shù)據(jù)列表180         /// </summary>181         /// <param name="strWhere">sql條件</param>182         /// <returns></returns>183         public DataSet GetListBySql(string strWhere, string table)184         {185             return SQLProvider.GetDataset(strWhere.ToString());186         }187         /// <summary>188         /// 獲得數(shù)據(jù)列表189         /// </summary>190         /// <param name="strWhere">sql條件</param>191         /// <returns></returns>192         public DataSet GetList(string strWhere, string table)193         {194             StringBuilder strSql = new StringBuilder();195             strSql.Append("select * ");196             strSql.AppendFormat(" from {0} ", table);197             if (strWhere.Trim() != "")198             {199                 strSql.Append(" where " + strWhere);200             }201             return SQLProvider.GetDataset(strSql.ToString());202         }203 204         /// <summary>205         /// 分頁得到相應數(shù)據(jù)206         /// </summary>207         /// <param name="strWhere"></param>208         /// <param name="table"></param>209         /// <param name="strorder"></param>210         /// <param name="start"></param>211         /// <param name="end"></param>212         /// <returns></returns>213         public DataSet GetList(string strWhere, string table, string strorder, int start, int end)214         {215             string sql = "";216             if (strWhere.Trim() != "")217             {218                 sql = "select * from(select *,ROW_NUMBER() over(order by " + strorder + " ) as Num  from " + table + " where " + strWhere + ") as newTable where Num between  " + start + " and " + end + "";219             }220             else221             {222                 sql = "select * from(select *,ROW_NUMBER() over(order by " + strorder + " ) as Num  from " + table + ") as newTable where Num between  " + start + " and " + end + "";223             }224             return SQLProvider.GetDataset(sql.ToString());225         }226 227         /// <summary>228         /// 非常規(guī)排序229         /// </summary>230         /// <param name="strTop"></param>231         /// <param name="strWhere"></param>232         /// <param name="table"></param>233         /// <param name="rank"></param>234         /// <returns></returns>235         public DataSet GetTopListOne(string strTop, string strs, string table, string rank)236         {237             StringBuilder strSql = new StringBuilder();238             strSql.Append("select top(" + strTop + ")* ");239             strSql.AppendFormat(" from {0} ", table);240             if (strs.Trim() != "")241             {242                 strSql.Append(" " + strs);243             }244             strSql.Append(" order by " + rank + "");245             return SQLProvider.GetDataset(strSql.ToString());246         }247 248         /// <summary>249         /// 獲取前幾行數(shù)據(jù)  用于首頁顯示  方便250         /// </summary>251         /// <typeparam name="T"></typeparam>252         /// <param name="strTop"></param>253         /// <param name="strWhere"></param>254         /// <param name="table"></param>255         /// <returns></returns>256         public DataSet GetTopList(string strTop, string strWhere, string table, string rank)257         {258             StringBuilder strSql = new StringBuilder();259             strSql.Append("select top(" + strTop + ")* ");260             strSql.AppendFormat(" from {0} ", table);261             if (strWhere.Trim() != "")262             {263                 strSql.Append(" where " + strWhere);264             }265             strSql.Append(" order by " + rank + "");266             return SQLProvider.GetDataset(strSql.ToString());267         }268 269 270         public DataSet GetTopList2(string strTop, string strWhere, string table, string rank)271         {272             StringBuilder strSql = new StringBuilder();273             strSql.Append("select top(" + strTop + ") id,title,ImgInfo,Author,Time  ");274             strSql.AppendFormat(" from {0} ", table);275             if (strWhere.Trim() != "")276             {277                 strSql.Append(" where " + strWhere);278             }279             strSql.Append(" order by " + rank + "");280             return SQLProvider.GetDataset(strSql.ToString());281         }282 283         /// <summary>284         /// 獲得前幾行數(shù)據(jù)285         /// </summary>286         /// <param name="Top">幾行</param>287         /// <param name="strWhere">sql語句</param>288         /// <param name="filedOrder">排序</param>289         /// <param name="table">表名</param>290         /// <returns></returns>291         public DataSet GetList(int Top, string strWhere, string filedOrder, string table)292         {293             StringBuilder strSql = new StringBuilder();294             strSql.Append("select ");295             if (Top > 0)296             {297                 strSql.Append(" top " + Top.ToString());298             }299             strSql.Append(" * ");300             strSql.AppendFormat(" from {0} ", table);301             if (strWhere.Trim() != "")302             {303                 strSql.Append(" where " + strWhere);304             }305             strSql.Append(" order by " + filedOrder);306             return SQLProvider.GetDataset(strSql.ToString());307         }308 309         /// <summary>310         /// 獲取記錄總數(shù)311         /// </summary>312         /// <param name="strWhere">sql查詢條件</param>313         /// <param name="table">表名</param>314         /// <returns></returns>315         public int GetRecordCount(string strWhere, string table)316         {317             StringBuilder strSql = new StringBuilder();318             strSql.AppendFormat("select count(1) from {0} ", table);319             if (strWhere.Trim() != "")320             {321                 strSql.Append(" where " + strWhere);322             }323             object obj = SQLProvider.GetScalar(strSql.ToString());324             if (obj == null)325             {326                 return 0;327             }328             else329             {330                 return Convert.ToInt32(obj);331             }332         }333         /// <summary>334         /// 分頁獲取數(shù)據(jù)列表335         /// </summary>336         /// <param name="strWhere">分頁條件</param>337         /// <param name="orderby">排序字段desc</param>338         /// <param name="startIndex">開始頁</param>339         /// <param name="endIndex">結束頁</param>340         /// <param name="table">表名</param>341         /// <returns></returns>342         public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex, string table)343         {344             StringBuilder strSql = new StringBuilder();345             strSql.Append("SELECT * FROM ( ");346             strSql.Append(" SELECT ROW_NUMBER() OVER (");347             if (!string.IsNullOrEmpty(orderby.Trim()))348             {349                 strSql.Append("order by T." + orderby);350             }351             else352             {353                 strSql.Append("order by T.Id desc");354             }355             strSql.AppendFormat(")AS Row, T.*  from {0} T ", table);356             if (!string.IsNullOrEmpty(strWhere.Trim()))357             {358                 strSql.Append(" WHERE " + strWhere);359             }360             strSql.Append(" ) TT");361             strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);362             return SQLProvider.GetDataset(strSql.ToString());363         }364 365 366         #endregion  BasicMethod367     }
View Code

 

再來看看BLL基類:

  1 public  class BLL  2     {  3       private readonly DAL dal = new DAL();  4   5         /// <summary>  6         ///  得到最大ID  7         /// </summary>  8         /// <param name="table">表名</param>  9         /// <returns></returns> 10         public int GetMaxId(string table) 11         { 12             return dal.GetMaxId(table); 13         } 14         /// <summary> 15         /// 是否存在該記錄 16         /// </summary> 17         /// <param name="Table">表名</param> 18         /// <param name="Id">編號Id</param> 19         /// <returns></returns> 20         public bool Exists(string table, int Id) 21         { 22             return dal.Exists(table, Id); 23         } 24         /// <summary> 25         /// 增加一條數(shù)據(jù) 26         /// </summary> 27         /// <param name="Field">要插入的字段</param> 28         /// <param name="Models">插入字段的參數(shù)</param> 29         /// <returns></returns> 30         public int Add(string Table, string Field, string[] Models) 31         { 32             return dal.Add(Table, Field, Models); 33         } 34         /// <summary> 35         /// 更新一條數(shù)據(jù) 36         /// </summary> 37         /// <param name="id">根據(jù)id修改</param> 38         /// <param name="table">表名</param> 39         /// <param name="fields">修改字段</param> 40         /// <returns></returns> 41         public bool Update(string id, string table, string fields, string[] models) 42         { 43             return dal.Update(id, table, fields, models); 44         }    45        46         public bool Update(string id, string table, string fields, string models) 47         { 48             return dal.Update(id, table, fields, models); 49         }   50         /// <summary> 51         /// 刪除一條數(shù)據(jù) 52         /// </summary> 53         /// <param name="Table">表名</param> 54         /// <param name="Id">編號</param> 55         /// <returns></returns> 56         public bool Delete(string Table, int Id) 57         { 58             return dal.Delete(Table, Id); 59         } 60         /// <summary> 61         /// 獲得數(shù)據(jù)列表 62         /// </summary> 63         /// <param name="strWhere">sql條件</param> 64         /// <returns></returns> 65         public DataSet GetList(string strWhere, string table) 66         { 67             return dal.GetList(strWhere, table); 68         } 69  70         #region 利用泛型類獲取實體類 71         /// <summary> 72         /// 獲得數(shù)據(jù)列表 73         /// </summary> 74         public List<T> GetModelList<T>(string strWhere, string table) where T : new() 75         { 76             DataSet ds = dal.GetList(strWhere, table); 77             return DataTableToList<T>(ds.Tables[0]); 78         } 79  80         /// <summary> 81         /// 純sql獲得數(shù)據(jù)列表 82         /// </summary> 83         public List<T> GetModelListBySql<T>(string sql, string table) where T : new() 84         { 85             DataSet ds = dal.GetListBySql(sql, table); 86             return DataTableToList<T>(ds.Tables[0]); 87         } 88  89         public List<T> GetModelList<T>(string strWhere, string table, string strorder, int start, int end) where T : new() 90         { 91             DataSet ds = dal.GetList(strWhere, table, strorder, start, end); 92             return DataTableToList<T>(ds.Tables[0]); 93         } 94  95         /// <summary> 96         /// 獲取前幾行數(shù)據(jù)  用于首頁顯示  方便 97         /// </summary> 98         /// <typeparam name="T"></typeparam> 99         /// <param name="strTop"></param>100         /// <param name="strWhere"></param>101         /// <param name="table"></param>102         /// <returns></returns>103         public List<T> GetModelTopList<T>(string strTop, string strWhere, string table, string rank) where T : new()104         {105             DataSet ds = dal.GetTopList(strTop, strWhere, table, rank);106             return DataTableToList<T>(ds.Tables[0]);107         }108 109 110         public List<T> GetModelTopList2<T>(string strTop, string strWhere, string table, string rank) where T : new()111         {112             DataSet ds = dal.GetTopList2(strTop, strWhere, table, rank);113             return DataTableToList<T>(ds.Tables[0]);114         }115 116 117         /// <summary>118         /// 根據(jù)國家文章的前幾篇排序 非常規(guī)排序119         /// </summary>120         /// <typeparam name="T"></typeparam>121         /// <param name="strTop"></param>122         /// <param name="strs"></param>123         /// <param name="table"></param>124         /// <param name="rank"></param>125         /// <returns></returns>126         public List<T> GetModelTopListOne<T>(string strTop, string strs, string table, string rank) where T : new()127         {128             DataSet ds = dal.GetTopListOne(strTop, strs, table, rank);129             return DataTableToList<T>(ds.Tables[0]);130         }131 132         /// <summary>133         /// 獲得數(shù)據(jù)列表134         /// </summary>135         public List<T> DataTableToList<T>(DataTable dt) where T : new()136         {137             List<T> modelList = new List<T>();138             int rowsCount = dt.Rows.Count;139             if (rowsCount > 0)140             {141                 T model;142                 for (int n = 0; n < rowsCount; n++)143                 {144                     model = DataConvert.DataRowToModel<T>(dt.Rows[n]);145                     if (model != null)146                     {147                         modelList.Add(model);148                     }149                 }150             }151             return modelList;152         }153 154 155         SqlDataProvider SQLProvider = new SqlDataProvider(SqlHelper.GetConnSting());156         /// <summary>157         /// 得到一個對象實體158         /// </summary>159         /// <typeparam name="T">實體類型</typeparam>160         /// <param name="Table">表名</param>161         /// <param name="Id">Id</param>162         /// <returns></returns>163         public T GetModles<T>(string Table, int Id) where T : new()164         {165             StringBuilder strSql = new StringBuilder();166             strSql.AppendFormat("select  top 1 * from {0} ", Table);167             strSql.Append(" where Id=@Id");168             SqlParameter[] parameters = {169                     new SqlParameter("@Id", SqlDbType.Int,4)170             };171             parameters[0].Value = Id;172 173             T model = new T();174             DataSet ds = SQLProvider.GetDataset(strSql.ToString(), parameters);175             if (ds.Tables[0].Rows.Count > 0)176             {177                 return DataConvert.DataRowToModel<T>(ds.Tables[0].Rows[0]);178             }179             else180             {181                 return default(T);182             }183         }184 185         /// <summary>186         /// 得到一個對象實體187         /// </summary>188         /// <typeparam name="T">實體類型</typeparam>189         /// <param name="Table">表名</param>190         /// <param name="Id">Id</param>191         /// <returns></returns>192         public T GetModles<T>(string Table, string fields, string models) where T : new()193         {194             StringBuilder strSql = new StringBuilder();195             strSql.AppendFormat("select  top 1 * from {0} ", Table);196             strSql.AppendFormat(" where {0}=@{1}", fields, fields);197             SqlParameter[] parameters = {198                     new SqlParameter("@"+fields+"", models)199             };200 201             T model = new T();202             DataSet ds = SQLProvider.GetDataset(strSql.ToString(), parameters);203             if (ds.Tables[0].Rows.Count > 0)204             {205                 return DataConvert.DataRowToModel<T>(ds.Tables[0].Rows[0]);206             }207             else208             {209                 return default(T);210             }211         }212 213         /// <summary>214         /// 得到一個對象實體 sql215         /// </summary>216         /// <typeparam name="T">實體類型</typeparam>217         /// <param name="Table">表名</param>218         /// <param name="strWhere">Id</param>219         /// <returns></returns>220         public T GetModle<T>(string Table, string strWhere) where T : new()221         {222             StringBuilder strSql = new StringBuilder();223             strSql.AppendFormat("select  top 1 * from {0} ", Table);224             if (strWhere.Trim() != "")225             {226                 strSql.Append(" where " + strWhere);227             }228 229             T model = new T();230             DataSet ds = SQLProvider.GetDataset(strSql.ToString());231             if (ds.Tables[0].Rows.Count > 0)232             {233                 return DataConvert.DataRowToModel<T>(ds.Tables[0].Rows[0]);234             }235             else236             {237                 return default(T);238             }239         }240         /// <summary>241         /// 得到一個對象實體242         /// </summary>243         /// <typeparam name="T">實體類型</typeparam>244         /// <param name="Table">表名</param>245         /// <param name="Name">Name</param>246         /// <returns></returns>247         public T GetModles<T>(string Table, string Name) where T : new()248         {249             StringBuilder strSql = new StringBuilder();250             strSql.AppendFormat("select  top 1 * from {0} ", Table);251             strSql.Append(" where UserEmail=@Name");252             SqlParameter[] parameters = {253                     new SqlParameter("@Name", SqlDbType.NVarChar,50)254             };255             parameters[0].Value = Name;256 257             T model = new T();258             DataSet ds = SQLProvider.GetDataset(strSql.ToString(), parameters);259             if (ds.Tables[0].Rows.Count > 0)260             {261                 return DataConvert.DataRowToModel<T>(ds.Tables[0].Rows[0]);262             }263             else264             {265                 return default(T);266             }267         }268         #endregion269 270         /// <summary>271         /// 獲得數(shù)據(jù)列表272         /// </summary>273         public DataSet GetAllList(string table)274         {275             return GetList("", table);276         }277 278         /// <summary>279         /// 獲得前幾行數(shù)據(jù)280         /// </summary>281         /// <param name="Top">幾行</param>282         /// <param name="strWhere">sql語句</param>283         /// <param name="filedOrder">排序</param>284         /// <param name="table">表名</param>285         /// <returns></returns>286         public DataSet GetList(int Top, string strWhere, string filedOrder, string table)287         {288             return dal.GetList(Top, strWhere, filedOrder, table);289         }290         /// <summary>291         /// 獲取記錄總數(shù)292         /// </summary>293         /// <param name="strWhere">sql查詢條件</param>294         /// <param name="table">表名</param>295         /// <returns></returns>296         public int GetRecordCount(string strWhere, string table)297         {298             return dal.GetRecordCount(strWhere, table);299         }300         /// <summary>301         /// 分頁獲取數(shù)據(jù)列表302         /// </summary>303         /// <param name="strWhere">分頁條件</param>304         /// <param name="orderby">排序字段desc</param>305         /// <param name="startIndex">開始頁</param>306         /// <param name="endIndex">結束頁</param>307         /// <param name="table">表名</param>308         /// <returns></returns>309         public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex, string table)310         {311             return dal.GetListByPage(strWhere, orderby, startIndex, endIndex, table);312         }313 314 315         /// <summary>316         /// 關鍵詞下拉查詢317         /// </summary>318         /// <param name="kw">關鍵詞</param>319         /// <returns></returns>320         public IEnumerable<SearchSum> GetSuggestion(string kw)321         {322             DataTable dt = SQLProvider.ExecuteDataTable(@"select top 5 KeyWords,count(*) as searchcount  from SearchDetails 323                                        where datediff(day,searchdatetime,getdate())<7324                                        and keywords like @keyword325                                        group by Keywords order by count(*) desc", new SqlParameter("@keyword", "%" + kw + "%"));326             List<SearchSum> list = new List<SearchSum>();327             if (dt != null && dt.Rows != null && dt.Rows.Count > 0)328             {329                 foreach (DataRow row in dt.Rows)330                 {331                     SearchSum oneModel = new SearchSum();332                     oneModel.Keyword = Convert.ToString(row["keywords"]);333                     oneModel.SearchCount = Convert.ToInt32(row["SearchCount"]);334                     list.Add(oneModel);335                 }336             }337             return list;338         }339         #region 熱度查詢+緩存340         /// <summary>341         /// 緩存342         /// </summary>343         /// <returns></returns>344         public IEnumerable<SearchDetails> GetHotWords()345         {346             //緩存347             var data = HttpRuntime.Cache["hotwords"];348             if (data == null)349             {350                 IEnumerable<SearchDetails> hotWords = DoSelect();351                 HttpRuntime.Cache.Insert("hotwords", hotWords, null, DateTime.Now.AddMilliseconds(30), TimeSpan.Zero);352                 return hotWords;353             }354             return (IEnumerable<SearchDetails>)data;355         }356         /// <summary>357         /// 查詢熱度358         /// </summary>359         /// <returns></returns>360         private IEnumerable<SearchDetails> DoSelect()361         {362             string sql = @"select top 5 Keywords,count(*) as searchcount  from SearchDetails 363                            where datediff(day,searchdatetime,getdate())<7364                            group by Keywords order by count(*) desc";365             List<SearchDetails> list = new List<SearchDetails>();366 367             list = GetModelListBySql<SearchDetails>(sql, "SearchDetails");368             return list;369         }370         #endregion 371     }
BLL類

 

最后看看Model,其中的新聞類:

  1   [Serializable]  2    public  class NewsInfo  3     {  4         public NewsInfo()  5         { }  6         #region Model  7         private int _id;  8         private string _title;  9         private string _keyword; 10         private string _summary; 11         private string _source;  12         private string _sourceUrl; 13         private string _author; 14         private DateTime  _time; 15         private int _hits; 16         private string _newsinfo;  17         private int _ishotspot; 18         private int  _newstypeid; 19         private string _newstypename; 20         private int  _isdelete; 21         private int  _sort; 22         private string _imgInfo; 23         private string _imgDec; 24         private int _price; 25         private int _review; 26         private string _creatUserId; 27         public string CreatUserId 28         { 29             get { return _creatUserId; } 30             set { _creatUserId = value; } 31         } 32         private string checkState; 33         public string CheckState 34         { 35             get { return checkState; } 36             set { checkState = value; } 37         } 38  39         /// <summary> 40         /// 評論 41         /// </summary> 42         public int Review 43         { 44             get { return _review; } 45             set { _review = value; } 46         } 47  48         public int Price 49         { 50             get { return _price; } 51             set { _price = value; } 52         } 53         public string ImgDec 54         { 55             get { return _imgDec; } 56             set { _imgDec = value; } 57         } 58         59         /// <summary> 60         /// 編號 61         /// </summary> 62         public int Id 63         { 64             set { _id = value; } 65             get { return _id; } 66         } 67          68         /// <summary> 69         /// 標題 70         /// </summary> 71         public string Title 72         { 73             set { _title = value; } 74             get { return _title; } 75         } 76         /// <summary> 77         /// 關鍵字 78         /// </summary> 79         public string KeyWord 80         { 81             set { _keyword = value; } 82             get { return _keyword; } 83         } 84         /// <summary> 85         /// 摘要 86         /// </summary> 87         public string Summary 88         { 89             set { _summary = value; } 90             get { return _summary; } 91         } 92         /// <summary> 93         /// 來源 94         /// </summary> 95         public string Source 96         { 97             set { _source = value; } 98             get { return _source; } 99         }100         /// <summary>101         /// 來源url102         /// </summary>103         public string SourceUrl104         {105             set { _sourceUrl = value; }106             get { return _sourceUrl; }107         }108         /// <summary>109         /// 作者110         /// </summary>111         public string Author112         {113             set { _author = value; }114             get { return _author; }115         }116         /// <summary>117         /// 發(fā)表時間118         /// </summary>119         public DateTime Time120         {121             set { _time = value; }122             get { return _time; }123         }124         /// <summary>125         /// 點擊量126         /// </summary>127         public int Hits128         {129             set { _hits = value; }130             get { return _hits; }131         }132 133         /// <summary>134         ///  新聞內容135         /// </summary>136         public string Newsinfo137         {138             get { return _newsinfo; }139             set { _newsinfo = value; }140         }141        142         /// <summary>143         /// 是否是熱點144         /// </summary>145         public int IsHotSpot146         {147             set { _ishotspot = value; }148             get { return _ishotspot; }149         }150        151         /// <summary>152         /// 新聞類型編號153         /// </summary>154         public int NewsTypeId155         {156             set { _newstypeid = value; }157             get { return _newstypeid; }158         }159         /// <summary>160         /// 新聞類型名稱 161         /// </summary>162         public string NewsTypeName163         {164             set { _newstypename = value; }165             get { return _newstypename; }166         }167 168         /// <summary>169         /// 是否刪除170         /// </summary>171         public int IsDelete172         {173             set { _isdelete = value; }174             get { return _isdelete; }175         }176         177         /// <summary>178         /// 新聞排序179         /// </summary>180         public int Sort181         {182             set { _sort = value; }183             get { return _sort; }184         }185 186         /// <summary>187         /// 圖片路徑188         /// </summary>189         public string ImgInfo190         {191             get { return _imgInfo; }192             set { _imgInfo = value; }193         }194         #endregion Model195     }
News Model

 

Model類使用東軟的代碼生成器生成的。目前為止,我們簡單的三層的主要的代碼已經出來了。但是怎么能把這些連在一起呢,看代碼:

 1   public abstract class DataProvider 2     { 3         private static DataProvider _instance = null; 4         public static DataProvider Instance 5         { 6             get 7             { 8                 if (_instance == null) 9                 {10                     String strConnectionString = ConfigurationManager.ConnectionStrings["ConnnectionString"].ConnectionString;11 12                     String strConnectionType = ConfigurationManager.ConnectionStrings["ConnectionType"].ConnectionString;13                     if (strConnectionType.ToLower() == "sqlclient")14                     {15                         strConnectionType = "DAL.SqlDataProvider, DAL";16                     }17 18                     Type t = Type.GetType(strConnectionType);19                     Type[] paramTypes = new Type[1];20                     paramTypes[0] = typeof(String);21 22                     Object[] paramArray = new Object[1];23                     paramArray[0] = strConnectionString;24 25                     _instance = (DataProvider)((ConstructorInfo)t.GetConstructor(paramTypes)).Invoke(paramArray);26                 }27                 return _instance;28             }29         }30 31         #region 抽象屬性和方法32 33         #region 數(shù)據(jù)庫鏈接串34         public abstract String ConnectionString { get; }35         #endregion36 37         #region 執(zhí)行SQL語句38         public virtual bool Exists(string strSql, params SqlParameter[] cmdParms) { return true; }39         public virtual int GetMaxID(string FieldName, string TableName) { return 0; }40         public abstract Object GetScalar(String selectSql);41         public abstract DataSet GetDataset(String selectSql);42         public virtual DataSet GetDatasetTrans(SqlTransaction trans, String selectSql) { return null; }43         public virtual DataSet GetDatasetTrans(OleDbTransaction trans, String selectSql) { return null; }44         public virtual DataSet GetDataset(String selectSql, SqlParameter[] para) { return null; }45         public virtual DataSet GetDataset(String selectSql, OleDbParameter[] para) { return null; }46         public virtual DataSet GetDatasetTrans(SqlTransaction trans, String selectSql, SqlParameter[] para) { return null; }47         public virtual DataSet GetDatasetTrans(OleDbTransaction trans, String selectSql, OleDbParameter[] para) { return null; }48         public abstract int Execute(String noneQuery);49         public virtual int Execute(String noneQuery, SqlParameter[] para) { return 0; }50         public virtual int Execute(String noneQuery, OleDbParameter[] para) { return 0; }51         public abstract IDataReader GetReader(String selectSql);52         public virtual IDataReader GetReaderTrans(SqlTransaction trans, String selectSql) { return null; }53         public virtual IDataReader GetReaderTrans(OleDbTransaction trans, String selectSql) { return null; }54         public virtual IDataReader GetReader(String selectSql, SqlParameter[] para) { return null; }55         public virtual IDataReader GetReader(String selectSql, OleDbParameter[] para) { return null; }56         public virtual IDataReader GetReaderTrans(SqlTransaction trans, String selectSql, SqlParameter[] para) { return null; }57         public virtual IDataReader GetReaderTrans(OleDbTransaction trans, String selectSql, OleDbParameter[] para) { return null; }58         #endregion59 60         #region 執(zhí)行存儲過程61         public abstract void ExecuteSp(String spName);62         public virtual void ExecuteSp(SqlTransaction trans, String spName) { }63         public virtual void ExecuteSp(OleDbTransaction trans, String spName) { }64         public virtual void ExecuteSp(String spName, SqlParameter[] para) { }65         public virtual void ExecuteSp(String spName, OleDbParameter[] para) { }66         public virtual void ExecuteSp(SqlTransaction trans, String spName, SqlParameter[] para) { }67         public virtual void ExecuteSp(OleDbTransaction trans, String spName, OleDbParameter[] para) { }68         public abstract IDataReader GetReaderBySp(String spName);69         public virtual IDataReader GetReaderBySp(String spName, SqlParameter[] para) { return null; }70         public virtual IDataReader GetReaderBySp(String spName, OleDbParameter[] para) { return null; }71         public abstract Object GetScalarBySp(String spName);72         public virtual Object GetScalarBySp(String spName, SqlParameter[] para) { return null; }73         public virtual Object GetScalarBySp(String spName, OleDbParameter[] para) { return null; }74         public abstract DataSet GetDatasetBySp(String spName);75         public virtual DataSet GetDatasetBySp(String spName, SqlParameter[] para) { return null; }76         public virtual DataSet GetDatasetBySp(String spName, OleDbParameter[] para) { return null; }77         #endregion78 79         #endregion80     }
View Code

 

另外記得在Web.config文件中,修改數(shù)據(jù)庫的鏈接地址喲。

到目前為止,三層的東西已經都全了。再接下來,咱們一塊看看,到底是如何利用三層進行數(shù)據(jù)的增刪改查的。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: h视频在线免费看 | 成人毛片免费 | 国产深夜福利视频在线播放 | 久草在线最新免费 | 毛片免费视频观看 | 国产成人av免费观看 | 国产精品久久久久久影视 | 欧美黄一区| 日本xxxx视频 | 国产精品18久久久久久久 | 久久精品视频2 | 热99在线视频 | 国产精品毛片va一区二区三区 | 黄视频网址 | 成人午夜在线免费观看 | 88xx成人精品视频 | 午夜视频播放 | 久久影院国产精品 | 国产一区二区免费在线观看 | 国产免费久久久久 | 99视频在线观看视频 | 亚洲第一视频 | 在线a亚洲视频播放在线观看 | 一日本道久久久精品国产 | 2023av在线视频 | 久久久久久久一区二区 | 青青草成人影视 | 激情小说激情电影 | 午夜视频在线观看91 | 把娇妻调教成暴露狂 | 欧美一级黄色网 | 操操电影| 欧美日韩大片在线观看 | 一级性生活视频 | 9999在线视频 | 91精品一区二区综合在线 | 国产免费v片 | 国产美女视频一区二区三区 | 精品亚洲va在线va天堂资源站 | 亚洲成人第一区 | 黑人日比视频 |