亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

【模板下載】分享我所使用的數據庫框架

2024-07-21 02:47:47
字體:
來源:轉載
供稿:網友
【模板下載】分享我所使用的數據庫框架

NetworkComms網絡通信框架序言

也不能稱之為框架吧,其實就是幾個codesmith模板,只能用于sql server 數據庫,codesmith我所使用的而是6.5版本的。

作用: 生成存儲過程,Data類庫中的類,Business中的Entity類 ,和操作類 (自動生成的只有創建,更新,刪除,分頁獲取 等基本操作,高級的功能還需要手動添加)

原來也用過別的ORM,有時候覺得比較繁瑣,想找個簡單點的方式,這種通過codesmith模板生成 存儲過程 數據層 business層的方式,優點是簡單,直接操作sql,有時候感覺也很優美,

后來就一直在用。這個也不是原創的,是從國外一個開源的網站中學到的。后來擴展了一下,生成的存儲過程是直接支持分頁獲取的的。

2015年2月8日更新 v3版本下載解壓密碼 www.networkcomms.cn

我們在編寫程序的時候,通常有許多類庫,有的是專門用來同數據庫打交道的。如下圖的項目中:

data層是直接同數據庫打交道的,每一個類對應一個表,拿一個來舉例:

類中的方法是直接操作存儲過程的,這樣感覺比較靈活(存儲過程也是由模板生成的,當然有些是要手寫的,模板生成的是幾個基本的,比如添加數據,刪除數據,更新數據)

 public static class DBDep    {        /// <summary>        /// Gets the connection string for read.        /// </summary>        /// <returns></returns>        PRivate static string GetReadConnectionString()        {            return ConfigurationManager.AppSettings["MSSQLConnectionString"];        }        /// <summary>        /// Gets the connection string for write.        /// </summary>        /// <returns></returns>        private static string GetWriteConnectionString()        {            if (ConfigurationManager.AppSettings["MSSQLWriteConnectionString"] != null)            {                return ConfigurationManager.AppSettings["MSSQLWriteConnectionString"];            }            return ConfigurationManager.AppSettings["MSSQLConnectionString"];        }        /// <summary>        /// Inserts a row in the Dep table. Returns new integer id.        /// </summary>        /// <param name="title"> title </param>        /// <returns>int</returns>        public static int Create(            string title)        {            SqlParameterHelper sph = new SqlParameterHelper(GetWriteConnectionString(), "Dep_Insert", 1);            sph.DefineSqlParameter("@Title", SqlDbType.NVarChar, 100, ParameterDirection.Input, title);            int newID = Convert.ToInt32(sph.ExecuteScalar());            return newID;        }        /// <summary>        /// Updates a row in the Dep table. Returns true if row updated.        /// </summary>        /// <param name="id"> id </param>        /// <param name="title"> title </param>        /// <returns>bool</returns>        public static bool Update(            int id,            string title)        {            SqlParameterHelper sph = new SqlParameterHelper(GetWriteConnectionString(), "Dep_Update", 2);            sph.DefineSqlParameter("@ID", SqlDbType.Int, ParameterDirection.Input, id);            sph.DefineSqlParameter("@Title", SqlDbType.NVarChar, 100, ParameterDirection.Input, title);            int rowsAffected = sph.ExecuteNonQuery();            return (rowsAffected > 0);        }        /// <summary>        /// Deletes a row from the Dep table. Returns true if row deleted.        /// </summary>        /// <param name="id"> id </param>        /// <returns>bool</returns>        public static bool Delete(            int id)        {            SqlParameterHelper sph = new SqlParameterHelper(GetWriteConnectionString(), "Dep_Delete", 1);            sph.DefineSqlParameter("@ID", SqlDbType.Int, ParameterDirection.Input, id);            int rowsAffected = sph.ExecuteNonQuery();            return (rowsAffected > 0);        }        /// <summary>        /// Gets an IDataReader with one row from the Dep table.        /// </summary>        /// <param name="id"> id </param>        public static IDataReader GetOne(            int id)        {            SqlParameterHelper sph = new SqlParameterHelper(GetReadConnectionString(), "Dep_SelectOne", 1);            sph.DefineSqlParameter("@ID", SqlDbType.Int, ParameterDirection.Input, id);            return sph.ExecuteReader();        }        /// <summary>        /// Gets an IDataReader with some list row from the Dep table.        /// </summary>        /// <param name="id"> id </param>        public static IDataReader GetTopList(            int id)        {            SqlParameterHelper sph = new SqlParameterHelper(GetReadConnectionString(), "Dep_SelectTopList", 1);            sph.DefineSqlParameter("@pid", SqlDbType.Int, ParameterDirection.Input, id);            return sph.ExecuteReader();        }        /// <summary>        /// Gets a count of rows in the Dep table.        /// </summary>        public static int GetCount()        {            return Convert.ToInt32(SqlHelper.ExecuteScalar(                GetReadConnectionString(),                CommandType.StoredProcedure,                "Dep_GetCount",                null));        }        /// <summary>        /// Gets a Listcount of rows in the Dep table.        /// </summary>        public static int GetListCount(int pid)        {            SqlParameter theSqlParameter = new SqlParameter("@Pid", pid);            return Convert.ToInt32(SqlHelper.ExecuteScalar(                GetReadConnectionString(),                CommandType.StoredProcedure,                "Dep_GetListCount",                theSqlParameter));        }        /// <summary>        /// Gets an IDataReader with all rows in the Dep table.        /// </summary>        public static IDataReader GetAll()        {            return SqlHelper.ExecuteReader(                GetReadConnectionString(),                CommandType.StoredProcedure,                "Dep_SelectAll",                null);        }        /// <summary>        /// Gets a page of data from the Dep table.        /// </summary>        /// <param name="pageNumber">The page number.</param>        /// <param name="pageSize">Size of the page.</param>        /// <param name="totalPages">total pages</param>        public static IDataReader GetPage(            int pageNumber,            int pageSize,            out int itemCount)        {            itemCount = GetCount();            SqlParameterHelper sph = new SqlParameterHelper(GetReadConnectionString(), "Dep_SelectPage", 2);            sph.DefineSqlParameter("@PageNumber", SqlDbType.Int, ParameterDirection.Input, pageNumber + 1);            sph.DefineSqlParameter("@PageSize", SqlDbType.Int, ParameterDirection.Input, pageSize);            return sph.ExecuteReader();        }        public static IDataReader GetListPage(            int pageNumber,            int pageSize,            int pid,            out int itemCount)        {            itemCount = GetListCount(pid);            SqlParameterHelper sph = new SqlParameterHelper(GetReadConnectionString(), "Dep_SelectListPage", 3);            sph.DefineSqlParameter("@PageNumber", SqlDbType.Int, ParameterDirection.Input, pageNumber + 1);            sph.DefineSqlParameter("@PageSize", SqlDbType.Int, ParameterDirection.Input, pageSize);            sph.DefineSqlParameter("@pid", SqlDbType.Int, ParameterDirection.Input, pid);            return sph.ExecuteReader();        }    }

Business層有想對應的類

我們分別來看一下相關的代碼:

Dep類

 [ProtoContract]    public class Dep    {        #region Constructors        public Dep()        { }        #endregion        #region Private Properties        private int iD = -1;        private string title = string.Empty;        #endregion        #region Public Properties        [ProtoMember(1)]        public int ID        {            get { return iD; }            set { iD = value; }        }        [ProtoMember(2)]        public string Title        {            get { return title; }            set { title = value; }        }        #endregion    }

DoDep類

 public class DoDep    {        #region Private Methods        /// <summary>        /// Gets an instance of Dep.        /// </summary>        /// <param name="id"> id </param>        private static Dep GetDep(            int id)        {            using (IDataReader reader = DBDe
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧洲偷拍精品| 国产欧美 在线欧美| 国产91精品黑色丝袜高跟鞋| 91香蕉电影院| 欧美成人在线免费视频| 最近2019年中文视频免费在线观看| 国产不卡视频在线| 日韩美女写真福利在线观看| 亚洲免费视频在线观看| 欧美成人精品影院| 亚洲成人精品在线| 亚洲国产精彩中文乱码av在线播放| 国产精品久久久久久久久借妻| 久久91亚洲精品中文字幕奶水| 最近中文字幕2019免费| 欧美亚洲国产成人精品| 国产精品成人一区二区| 日韩中文字幕在线| 精品人伦一区二区三区蜜桃网站| 国产精品男女猛烈高潮激情| 亚洲欧美国产精品va在线观看| 国产日韩欧美影视| 5566日本婷婷色中文字幕97| 国产精品视频久久久| 国产精品欧美一区二区三区奶水| 亚洲精品美女在线观看播放| 日韩欧美主播在线| 亚洲精品美女久久久| 姬川优奈aav一区二区| zzjj国产精品一区二区| 欧美国产日韩二区| 欧美成aaa人片在线观看蜜臀| 91av视频在线免费观看| 国产日韩欧美中文在线播放| 久久久久久久影院| 国产精品电影网站| 中文字幕日韩有码| 国产精品亚洲第一区| 亚洲国产女人aaa毛片在线| 亚洲精品国产精品久久清纯直播| 亚洲成人久久一区| 懂色av影视一区二区三区| 日韩在线观看免费高清完整版| 在线亚洲国产精品网| 日韩欧美精品在线观看| 精品国产欧美一区二区五十路| 欧美日韩成人在线播放| 亚洲r级在线观看| 国产一区二区日韩精品欧美精品| 欧美一级淫片videoshd| 日韩中文字幕不卡视频| 久久久久久网站| 奇米4444一区二区三区| 中文字幕国产精品久久| 日韩欧美亚洲范冰冰与中字| 一个色综合导航| 欧美成人精品xxx| 欧美成人精品一区二区三区| 欧美成人小视频| 激情懂色av一区av二区av| www.亚洲天堂| 欧美高清无遮挡| 亚洲va久久久噜噜噜| 久久影视电视剧免费网站清宫辞电视| 亚洲图片欧洲图片av| 欧美国产乱视频| 亚洲精品少妇网址| 国产精品av免费在线观看| 色视频www在线播放国产成人| 亚洲精品videossex少妇| 欧美成人合集magnet| 久久久久久中文字幕| 日本一区二区在线免费播放| 55夜色66夜色国产精品视频| 国产女人18毛片水18精品| 精品福利免费观看| 亚洲一级免费视频| 日韩精品在线观| 久久久91精品| 国产午夜精品全部视频在线播放| 一本色道久久综合狠狠躁篇怎么玩| 日韩欧美精品在线观看| 国产精品一区二区久久精品| 美女啪啪无遮挡免费久久网站| 国产剧情日韩欧美| 亚洲最大成人在线| 欧美丰满少妇xxxxx做受| 欧美性理论片在线观看片免费| 欧美大片在线免费观看| 亚洲精品wwwww| 国产色婷婷国产综合在线理论片a| 精品亚洲va在线va天堂资源站| 成人亚洲欧美一区二区三区| 亚洲精品日韩欧美| 久久国产天堂福利天堂| 九九视频直播综合网| 日韩精品免费一线在线观看| 国产精品精品久久久| 91青草视频久久| 国产在线98福利播放视频| 久久久久久久久久久久久久久久久久av| 国产午夜精品视频| 欧美成人激情视频免费观看| 精品国产31久久久久久| 97成人精品区在线播放| 欧美性受xxxx白人性爽| 91精品国产高清久久久久久| 中文字幕成人精品久久不卡| 国产99久久精品一区二区永久免费| 久久99久久99精品免观看粉嫩| 日韩精品免费一线在线观看| 久久在线观看视频| 国产成人精品av| 欧美性jizz18性欧美| 欧美成人黑人xx视频免费观看| 国产精品99蜜臀久久不卡二区| 在线成人免费网站| 国产精品丝袜久久久久久不卡| 欧美性受xxx| 亚洲成人黄色在线| 国产女人精品视频| 国产精品久久久久国产a级| 中国人与牲禽动交精品| 亚洲欧洲日产国码av系列天堂| 亚洲一区亚洲二区亚洲三区| 性金发美女69hd大尺寸| 主播福利视频一区| 色悠久久久久综合先锋影音下载| 国产精品一二三在线| 久久久电影免费观看完整版| 国产精品第3页| 日韩国产精品视频| 91影视免费在线观看| 欧美激情极品视频| 欧美成人一二三| 日本国产一区二区三区| 亚洲va欧美va国产综合久久| 欧美亚洲国产日本| 国产亚洲视频中文字幕视频| 精品国产一区二区三区久久狼5月| 成人网在线视频| 亚洲人成欧美中文字幕| 亚洲精品一区二三区不卡| 午夜精品久久久久久久99热| 国产精品香蕉av| 亚洲精品一区av在线播放| 日韩亚洲第一页| 久久免费精品日本久久中文字幕| 日韩精品小视频| 欧美精品激情blacked18| 永久免费毛片在线播放不卡| 国产日本欧美视频| 亚洲欧美一区二区三区在线| 社区色欧美激情 | 亚洲综合色av| 91精品久久久久久久久不口人| 久久久免费观看| 国产精品视频网| 91超碰caoporn97人人| 久久久久久久亚洲精品| 91在线精品播放| 91九色精品视频| 国语自产精品视频在线看一大j8| 亚洲国产精品久久久久秋霞蜜臀|