久久亚洲精品成人_国产精品欧美综合亚洲_亚洲va天堂va欧美ⅴa在线_91色视频在线观看_久久影院亚洲_一级黄色片播放_日韩av在线一区_精品一区二区在线看_老头吃奶性行交视频_日韩免费高清视频_天天操天天爽天天干_日本欧美在线视频

首頁 > 學院 > 開發設計 > 正文

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

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

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

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

 

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

  1  public  class DAL  2     {  3         #region  BaseDAL  4         SqlDataPRovider SQLProvider = new SqlDataProvider(SqlHelper.GetConnSting());//TODO:這個動態類是單例模式?  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         /// 增加一條數據 36         /// </summary> 37         /// <param name="Field">要插入的字段</param> 38         /// <param name="Models">插入字段的參數</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         /// 更新一條數據 61         /// </summary> 62         /// <param name="id">根據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         /// 刪除一條數據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         /// 批量刪除數據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獲得數據列表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         /// 獲得數據列表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         /// 分頁得到相應數據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         /// 非常規排序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         /// 獲取前幾行數據  用于首頁顯示  方便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         /// 獲得前幾行數據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         /// 獲取記錄總數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         /// 分頁獲取數據列表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         /// 增加一條數據 26         /// </summary> 27         /// <param name="Field">要插入的字段</param> 28         /// <param name="Models">插入字段的參數</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         /// 更新一條數據 36         /// </summary> 37         /// <param name="id">根據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         /// 刪除一條數據 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         /// 獲得數據列表 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         /// 獲得數據列表 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獲得數據列表 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         /// 獲取前幾行數據  用于首頁顯示  方便 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         /// 根據國家文章的前幾篇排序 非常規排序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         /// 獲得數據列表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         /// 獲得數據列表272         /// </summary>273         public DataSet GetAllList(string table)274         {275             return GetList("", table);276         }277 278         /// <summary>279         /// 獲得前幾行數據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         /// 獲取記錄總數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         /// 分頁獲取數據列表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         /// 發表時間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 數據庫鏈接串34         public abstract String ConnectionString { get; }35         #endregion36 37         #region 執行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 執行存儲過程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文件中,修改數據庫的鏈接地址喲。

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
91精品入口蜜桃| 欧美日韩生活片| 97人妻精品一区二区三区软件| 色综合久久88色综合天天| 懂色一区二区三区av片 | 韩国日本不卡在线| 欧美性猛交xx| 不卡av在线免费观看| 日韩在线观看免费全集电视剧网站| 999香蕉视频| 久久精品午夜| 中文字幕日韩有码| 中文字幕色网站| 成人网男人的天堂| 日本精品va在线观看| 91精品人妻一区二区三区| 国产亚洲精品免费| 国产在线视频一区| 欧美黄色一级网站| 日本大香伊一区二区三区| 日韩国产精品一区二区| 国产精品人妻一区二区三区| 日韩精品一区在线| 欧美日韩第二页| 蜜桃91丨九色丨蝌蚪91桃色| 另类少妇人与禽zozz0性伦| 天天色棕合合合合合合合| 狠狠躁夜夜躁av无码中文幕| 久久久精品一品道一区| 午夜欧美视频在线观看| 国产精品入口麻豆原神| 一区二区三区中文字幕电影| 色播五月激情综合网| 国产精品嫩草影视| 成人激情午夜影院| 国产欧美久久久久久| 久久亚洲AV无码| 欧美图区在线视频| 日韩欧美不卡在线| 国产精品888| 国产精品久久久久久婷婷天堂 | 91色琪琪电影亚洲精品久久| 国产精品老熟女一区二区| 欧美视频一区二区在线观看| 国产九九九九九| 高清视频一区二区| 亚洲a一级视频| 国产视频一区二区三区四区五区| 色一情一乱一区二区| 国产资源中文字幕| 伊人久久大香线蕉av一区| 97精品人妻一区二区三区香蕉| 欧美成人精品3d动漫h| 国产亚洲欧美另类一区二区三区| 久久久精品国产网站| 中文字幕12页| 国产精品免费视频观看| 欧美另类一区| 视频在线在亚洲| 蜜臀久久99精品久久久久宅男| 国产夫绿帽单男3p精品视频| 日韩精品电影网| 天天做天天干天天操| 国产精品无码永久免费888| 久久视频在线观看中文字幕| 少妇一级淫片免费看| 91精品国产一区| 亚洲无av在线中文字幕| 免费观看成人在线视频| 欧美韩国日本一区| 欧美一区二区三区电影在线观看| 日韩电影免费在线看| 国产成人精品视频在线观看| 亚洲午夜激情视频| 欧美大片免费看| 日韩av大片在线观看| 中文字幕亚洲综合| 久久久久久国产精品视频| 亚洲精品国产精品国自产在线 | 国产自产女人91一区在线观看| 香蕉污视频在线观看| 深夜福利一区二区| 久久这里只有精品国产| 亚洲视频在线视频| 免费成年人视频在线观看| 亚洲国产精品福利| 四虎成人免费影院| 精品久久国产老人久久综合| 精品欧美一区二区久久久| 欧美一区国产二区| 久久中文字幕人妻| 日韩女优电影在线观看| 少妇大叫太粗太大爽一区二区| 精品视频免费在线| av2014天堂网| 日韩视频一区二区三区| 国产免费嫩草影院| 亚洲人高潮女人毛茸茸| 日韩欧美亚洲一区二区三区| 久久在精品线影院精品国产| 欧美一级淫片免费视频黄| 精品综合久久久久久97| 亚洲综合五月天婷婷丁香| 秋霞av国产精品一区| 亚洲av无码国产综合专区| 国产日韩欧美夫妻视频在线观看| 亚欧在线观看视频| 国产伦一区二区三区色一情| 成人免费高清在线| 97视频在线免费| 亚洲自拍欧美精品| 亚洲国产欧美91| 91精品欧美一区二区三区综合在| 国产真实乱人偷精品人妻| 亚洲免费福利视频| 三级黄色在线视频| 91国产美女在线观看| 日本精品999| 麻豆亚洲一区| 欧美国产丝袜视频| 五月婷婷激情久久| 91精品国产91久久综合桃花| tube国产麻豆| 久久久久女教师免费一区| 亚洲精品一区二区三区新线路 | 欧美一区二区三区白人| 天天爽天天爽天天爽| 久久精品99国产精品酒店日本| 91在线精品入口| a级国产乱理论片在线观看99| 床上的激情91.| av网站在线观看不卡| 欧美日本高清视频在线观看| 老司机成人免费视频| 久久久久久91香蕉国产| 视频一区二区三区中文字幕| 中文字幕在线观看一区二区三区| 亚洲一区在线观看免费观看电影高清| 人妻丰满熟妇av无码久久洗澡| 亚洲一区二区精品| 精品区在线观看| 欧美一区二区三区四区五区六区| 亚洲摸摸操操av| 精品无码在线视频| 久久精品国产电影| 天天干,天天操,天天射| 欧美另类videos| 欧美最猛性xxxxx直播| 久久免费公开视频| 91欧美激情另类亚洲| 2014亚洲片线观看视频免费| 青青草原播放器| 中文字幕一区电影| 天天干天天色天天| 少妇久久久久久被弄到高潮| 7777精品伊人久久久大香线蕉| 4438国产精品一区二区| 精品视频导航| 亚洲妇熟xx妇色黄| 一区二区视频免费看| 91免费的视频在线播放| 成人欧美一区二区三区1314| 精品无码国产污污污免费网站 | www.啪啪.com| 欧美理论片在线观看| 日本不卡一区二区三区高清视频| 国产中文字幕免费观看| 亚洲精品黄网在线观看| 午夜精品久久久久久久99老熟妇| 免费在线精品视频| 日韩久久久久久| 精品久久国产视频| 大胆欧美熟妇xx| 精品国产乱码久久久久久图片 | 毛片基地在线观看| 欧美日韩一区二| 欧美性xxxx| 夜夜爽妓女8888视频免费观看| 久热这里只精品99re8久| 色激情天天射综合网| 国产免费一区二区三区四区五区| 亚洲精品一区二区三区四区五区| 欧美一区二区在线免费观看| 日本精品999| 日本人视频jizz页码69| 九九视频这里只有精品| 91在线播放网址| 无码一区二区三区在线| 亚洲影院色无极综合| 色综合久久九月婷婷色综合| 一级片在线免费观看视频| 免费特级黄色片| 国产午夜精品全部视频播放| 国产精品中文字幕一区二区三区| 色悠悠在线视频| 91精品国产综合久久久久久久久| 午夜视频一区在线观看| 中文字字幕在线观看| 99爱视频在线| 色综合色综合网色综合| 日本一区二区三区视频视频| 麻豆亚洲av成人无码久久精品| 亚洲.欧美.日本.国产综合在线| 日韩一二三四区| 男女男精品网站| 精品人妻在线视频| 亚洲专区在线视频| 欧美日韩成人综合| 日欧美一区二区| 99久久人妻无码中文字幕系列| 91视频99| 欧美一级专区免费大片| 欧美a级理论片| 人妻av一区二区| 999精品视频一区二区三区| 欧美日韩电影一区| 免费看欧美美女黄的网站| 日本丰满少妇裸体自慰| 动漫一区二区在线| 日韩精品一区二区三区视频| 国产综合色视频| 永久免费未视频| 中文字幕日韩一区二区三区不卡| 亚洲图片欧美日产| 国产精品卡一卡二卡三| 亚洲图片在线播放| 免费国偷自产拍精品视频| 91久久嫩草影院一区二区| 欧美精品视频www在线观看| 日日夜夜精品视频免费| 女人裸体性做爰全过| 在线视频福利一区| 欧美黄色小视频| 色综合久久88色综合天天免费| 日韩成人伦理电影在线观看| 魔女鞋交玉足榨精调教| 亚洲日本精品| 欧美黄色成人网| 色综合久久久久综合体桃花网| 无码国产伦一区二区三区视频 | 日韩免费电影一区二区三区| 国产香蕉精品视频一区二区三区| 国产精品美女久久久久久久| 国产又大又长又粗| 私密视频在线观看| 亚洲狠狠婷婷综合久久久| 欧美老妇交乱视频| 欧洲精品一区二区三区在线观看| 国产在线国偷精品免费看| 久草视频免费在线播放| 中文字幕国产传媒| 国产在线一区二区三区四区| 中文欧美日本在线资源| 婷婷中文字幕综合| 精品一区二区三区在线播放| 日韩无码精品一区二区三区| 91免费视频污| 在线观看福利一区| 国产精品高潮粉嫩av| 亚洲国产欧美久久| 尤物视频一区二区| 精品午夜久久福利影院| 日本韩国欧美中文字幕| 蜜桃福利午夜精品一区| 婷婷四房综合激情五月| 57pao精品| 欧美精品一区在线观看| 亚洲三级久久久| 理论片日本一区| 国产一级18片视频| 怡红院一区二区| 男人天堂手机在线视频| 91久久爱成人| 久热精品视频在线观看一区| 91精品国产91热久久久做人人| 日韩一区在线看| 国产精品一色哟哟哟| 999精品国产| 免费在线观看一级片| 色哟哟在线观看视频| 国产卡一卡二在线| aaa级精品久久久国产片| 欧美巨猛xxxx猛交黑人97人| 日韩色视频在线观看| 亚洲大片一区二区三区| www.亚洲免费av| 水蜜桃久久夜色精品一区的特点 | 色综合天天综合色综合av| www.欧美色图| 久久婷婷av| 国产精品51麻豆cm传媒| wwwww黄色| 日本一级大毛片a一| 国产免费黄色av| 亚洲精品国产精品久久| 成人一区二区三区四区| 98精品国产自产在线观看| 亚洲视频自拍偷拍| 91精品国产一区二区| 亚洲高清视频中文字幕| 国产天堂亚洲国产碰碰| 国产精品一卡二| 视频一区二区中文字幕| 99久久精品无免国产免费| 日本熟伦人妇xxxx| 欧美色图17p| 四季av综合网站| 亚洲综合20p| 精品久久久久久久无码| 日本a级片在线播放| 欧洲精品一区色| 91在线精品观看| 国产日韩欧美在线播放| 亚洲3p在线观看| 久久躁日日躁aaaaxxxx| 国产小视频91| 日韩精品亚洲元码| 欧美疯狂性受xxxxx喷水图片| 色先锋久久av资源部| 综合电影一区二区三区| 亚洲国产精品二十页| 久久亚洲精精品中文字幕早川悠里 | 欧美自拍小视频| www国产免费| 亚洲第一精品区| 日韩精品欧美在线| 欧美日韩在线高清| 久久国产精品精品国产色婷婷| 成人欧美一区二区三区黑人免费| 川上优av一区二区线观看| 91精品久久久久久久久久久| 国产精品久久久久久久7电影| 中文字幕在线观看视频免费| 欧洲久久久久久| 成人在线免费网站| 成人黄色av网站| 91免费欧美精品| 成人在线激情视频| 91超碰rencao97精品| 91网站免费看| 97神马电影| 国产一区精品视频| 久久草视频在线看| 国产大片aaa| 我要看黄色一级片| 一区二区在线观看免费视频| 欧美激情图片小说| 久久久精品国产sm调教网站| 久久精品这里只有精品| 日本网站在线免费观看| 国产又黄又爽又色| 伊人精品一区二区三区| av男人天堂网| 久久精品伊人| 九色综合狠狠综合久久| 国产河南妇女毛片精品久久久| 成人一区二区三区| 久久久久九九视频| 亚洲欧美另类图片小说| 亚洲国产精品久久不卡毛片 | 亚洲成人黄色片| 男人的天堂a在线| 久久精品国产精品亚洲红杏| 粉嫩av亚洲一区二区图片| 91视频免费播放| 亚洲欧洲性图库| 色呦呦一区二区三区| 91精品国产综合久久小美女| 精品一区二区亚洲| 九九精品在线观看| 国产精品视频久| 精品国产一二| 91精品一区二区三区四区| 国产中文字幕在线免费观看| 无套内谢丰满少妇中文字幕 | 国产精品网站一区| 亚洲亚洲人成综合网络| 欧美久久久一区| 揄拍成人国产精品视频| 午夜精品一区二区三区在线视频| 成人高h视频在线| 欧美日韩国产三区| 欧美三级一级片| 一级欧美一级日韩片| 久久久久97国产| av男人天堂网| 国产69精品久久99不卡| 亚洲欧美激情小说另类| 欧美人妖巨大在线| 中文字幕亚洲一区二区三区五十路| 国产精品91在线| 欧美日韩天天操| 黄色片在线免费| 手机毛片在线观看| 国产又粗又猛又爽又| 蜜桃精品视频在线观看| 国产精品久久二区二区| 欧美亚洲国产bt| 北条麻妃久久精品| 亚洲专区中文字幕| www.av蜜桃| 国产精品无码网站| 亚洲av中文无码乱人伦在线视色| 日韩专区中文字幕一区二区| 国产女人水真多18毛片18精品视频| 色综合色狠狠天天综合色| 亚洲区一区二区三| 丝袜美腿成人在线| 日韩av在线看| 日本五十熟hd丰满|