首頁 [ 實驗作品 ] 工廠模式三層架構增刪改查分頁(BLL層使用事務)源碼
一鍵分享

工廠模式三層架構增刪改查分頁(BLL層使用事務)源碼

  • 商業

2015-02-17 13:15:09

主要通過WinForm應用程序實現Sql Server 2005,Sqlite 3的增、刪、改、查,分頁功能。是學習三層架構、工廠模式,操作Sql Server和Sqlite數據庫的極佳學習例子

  • 源碼類型: C/S
  • 開發環境: VS2010 + SQL2005
  • 開發語言: C#
  • 評分:

38.00金幣

購買類型: 源碼包
附加服務:  環境搭建 本地沒有開發環境,無法運行購買的源代碼,需要作者遠程指導安裝,并保證可以使用。時效一次,以后無義務再提供任何免費服務(請在購買后7日內申請服務,過期失效) 源碼部署 本地有開發環境,需要商家幫忙部署到買家的服務器上成功運行。時效一次,以后無義務再提供任何免費服務(請在購買后7日內申請服務,過期失效) 不需要 * 請選擇附加服務
  • 總瀏覽數:3870
  • 總成交量:11
.net
  • 51Aspx源碼必讀.txt[8KB]
  • DotNet.TransDbUtils.sln[8KB]
  • DotNet.TransDbUtils.suo[210KB]
  • from.gif[4KB]
  • 最新Asp.Net源碼下載.url[123B]

源碼介紹

源碼參數

  • 源碼類別:【實驗作品】
  • 源碼類型:C/S
  • 適合人群: 進階高手
  • 授權類型:商業版
  • 開發語言:C#
  • 數據庫:SQL2005
  • 框架版本:1.00
  • 源碼大小:4.81MB
  • 相關網址: 【免費瀏覽】
  • 源碼指數:
  • 完整度:
  • 上架時間:2015-02-17 13:15:09
  • 程序主界面
  • SqliteDb
  • SqlServerDb
  • 在BLL層使用數據庫事務接口
  • 程序主界面
  • SqliteDb
  • SqlServerDb
  • 在BLL層使用數據庫事務接口
  • Aspx.Query.CodeImageQueryModel
  • Aspx.Query.CodeImageQueryModel
  • Aspx.Query.CodeImageQueryModel
  • Aspx.Query.CodeImageQueryModel

一、更新記錄

1、更新日期:2015-08-05 00:00:00

2、更新內容:
以下是本次更新內容:
1.修改命名空間為DotNet,更具通用性。
2.規范一些代碼文件(夾)、方法名稱。
3.將數據庫事務放到BLL層使用,更利于復雜的業務邏輯編寫,保證DAL層的職責簡單性。
     【為什么要在BLL層使用數據庫事務?】
      (1)由于某些業務邏輯較復雜,需要對數據庫多表進行操作,為保證關聯數據的完整性,需要使用數據庫事務。
      (2)為了實現應用系統(業務邏輯)一次編寫即可支持多種數據庫,需要使用工廠模式實現多數據庫支持。
      (3)一般情況,我們可以在DAL層使用數據庫事務,但較多的業務邏輯放在DAL層,使得BLL層和DAL層職責不清,不利于統一在BLL層編寫業務邏輯,也不利于在DAL層僅編寫簡單的數據操作;
      (4)所以,在BLL層使用數據庫事務是最優的解決方案。但我們面臨一個問題:不同數據庫的事務類型不一樣,如SQLite數據庫事務類型是SQLiteTransaction,SqlServer數據庫事務類型是SqlTransaction,由于BLL層的代碼應與數據庫無關,就不應直接使用某種類型的數據庫事務。★解決方法是使用IDbTransaction接口,從而支持在BLL層使用Sqlite和SqlServer等多種不同數據庫事務。

一、源碼特點
      本軟件是一個工廠模式三層架構例子程序(★特點與難點是在BLL層使用數據庫事務,而不在DAL層使用數據庫事務)。程序通過WinForm應用程序實現Sql Server 2005,Sqlite 3的增、刪、改、查,分頁功能。是學習三層架構、工廠模式,操作Sql Server和Sqlite數據庫的極佳學習例子。本源碼是我開發一個10萬行代碼軟件時使用的架構的進化升級版,使用此架構,可以開發復雜的(操作數據庫)WinForm或WebForm程序,相信您在學習這個例子程序的時候,能學到很多項目開發經驗,包括接口操作、文件組織、編碼規范、多數據庫、代碼重用等等。
      【為什么要在BLL層使用數據庫事務?】
      1.由于某些業務邏輯較復雜,需要對數據庫多表進行操作,為保證關聯數據的完整性,需要使用數據庫事務。
      2.為了實現應用系統(業務邏輯)一次編寫即可支持多種數據庫,需要使用工廠模式實現多數據庫支持。
      3.一般情況,我們可以在DAL層使用數據庫事務,但較多的業務邏輯放在DAL層,使得BLL層和DAL層職責不清,不利于統一在BLL層編寫業務邏輯,也不利于在DAL層僅編寫簡單的數據操作;
      4.所以,在BLL層使用數據庫事務是最優的解決方案。但我們面臨一個問題:不同數據庫的事務類型不一樣,如SQLite數據庫事務類型是SQLiteTransaction,SqlServer數據庫事務類型是SqlTransaction,由于BLL層的代碼應與數據庫無關,就不應直接使用某種類型的數據庫事務。★解決方法是使用IDbTransaction接口,從而支持在BLL層使用Sqlite和SqlServer等多種不同數據庫事務。
二、功能介紹
      1、提供跨線程安全訪問控件示例。
      2、提供將異常信息保存為txt文件功能。
      3、提供程序只能運行1個實例,即不允許打開多個本程序的示例。
      4、提供捕獲未知異常功能,防止程序發生未捕獲異常而崩潰。
      5、提供窗體單列模式功能,即某窗體只能實例化1次,不能將某個窗體重復打開為多個窗體。
      6、提供將BLL層實例靜態化,即程序對BLL層進行一次實例化進行使用,不需要在每次使用時實例化。
      7、提供線程鎖功能,防止多線程同時訪問一個文件沖突。
      8、提供MD5、SHA1等加密算法,數組和泛型轉換,中文拼音,生成隨機字符串等常用方法。
      9、提供數據庫事務例子。
      10、提供SQLiteHelper和SQLHelper使用例子程序,方便操作數據庫。  
      11、★本源碼另一個最大的優點:修改數據庫結構更改極少代碼,在實際項目開發中相當實用,從此不再為修改數據庫結構而頭疼了。示例:  
 // 普通的DAL層代碼:修改數據庫結構后,需要修改相應parameters代碼,很麻煩,易出錯。 
 public bool Update(Model.NT_User m) 
 { 
     string sql = "update User set [email protected] where [email protected] "; 
     SqlParameter[] param = { 
     new SqlParameter("@ID", SqlDbType.Int,4), 
     new SqlParameter("@UserName", SqlDbType.NVarChar,50)}; 
     param[0].Value = m.ID; 
     param[1].Value = m.RoleName; 
     return SqlHelper.ExecuteNonQuery(sql, param) > 0;
 } 
 //使用Utils類的DAL層代碼:修改數據庫結構后,只需修改fields(表的列名),其他代碼不用變,很簡單,不出錯。 
 private static string tablename = "NT_User";//表名 
 private static string[] fields = "Id,UserName".Split(',');//表的列名
 public bool Update(Model.NT_User m) 
 { 
     string sql = Utils.CreateUpdateSql(tablename, fields, true, " where [email protected]"); 
     SqlParameter[] param = Utils.CreateSqlParamsByInfo(m); 
     return SqlHelper.ExecuteNonQuery(sql, param) > 0; 
 }
三、注意事項
      1、開發環境為Visual Studio 2010,使用.net 2.0 開發。
      2、項目結構。解決方案WinForm.TransactionDbUtils包含10個項目,主要功能如下:
           DUF.BLL:業務邏輯層,包含各種業務邏輯處理方法;
           DUF.Common:公共方法層,包含各種公共方法,如字符串匹配等,其他各層均有可能使用其中的方法;
           DUF.DALFactory:工廠接口層,定義了數據庫訪問的接口,DUF.DALSQLite層和DUF.DALSQLServer層實現了工廠接口層的所有方法,若使用其他數據庫(如Oracle),則需要參考      DUF.DALSQLite層或DUF.DALSQLServer層再編寫DUF.DALOracle層。本層主要用到了反射技術:根據類名生成其實例。
           DUF.DALSQLite:SQLite數據庫訪問層,包含針對SQLite數據庫的增、刪、改、查,分頁功能。
           DUF.DUF.DALSQLServer:SQL Server數據庫訪問層,包含針對SQL Server數據庫的增、刪、改、查,分頁功能。
           DUF.Encrypt:本層是AES加解密字符串的例子程序,可用于數據庫連接字符串的加解密。
           DUF.Model:實體層,與數據庫表及其字段一一對應。
           DUF.Pager:分頁控件層,實現了一個WinForm分頁控件(支持多線程跨線程安全訪問)。
           DUF.UI:應用程序界面層,本軟件的WinForm窗體,提供數據錄入、展示、操作(修改、刪除等)的界面。
           DUF.XmlHelper:XML文件處理層,提供對XML的構建、解析、序列化、反序列化等操作。可用于配置文件的解析等。
           以上10個項目的引用關系請查看各項目的引用(如A項目引用了B項目,C項目引用了D和E項目等)。
      3、使用Sql Server或Sqlite,需要在DUF.UI類中的App.config修改,如使用Sql Server則為<add key="DAL" value="DUF.DALSQLServer" />,使用Sqlite則為<add key="DAL" value="DUF.DALSQLite" />。
      4、Sqlite數據庫存放位置:DUF.UI\bin\Debug\SqliteDb\SqliteDbUtilsFactory.db3,連接字符串在DUF.SQLite項目中SQLiteHelper.cs文件中。
      5、Sql Server 2005數據庫存放位置:DB_51aspx\SqlServerDbUtilsFactory.mdf,附加即可,本軟件無用戶名密碼。
責任編輯:WALL·E

購買記錄

用戶名 源碼評分 價格 購買時間 狀態

源碼評論

單擊更換

評論列表

全部評論
  • 暫無評論 …

  • 活躍于:   12-05 11:20:26
  • 通過率:   32 / 39 = 82%
  • 聯系方式:   購買后顯示作者聯系方式

最近更新

      下載排行

            北京pk10开奖视频 qq捕鱼大亨元旦 福彩3d万能胆码组 重庆时时彩走势 青海11选五开奖预测 十一选五前三值吉林 山东11选5开奖号码 大学城做什么生意赚钱 哪些公司用免费模式赚钱了 湖北体彩十一选五走势图今天 17175捕鱼达人手机版下载 广东十一选五怎么玩 梦幻西游垄断什么最赚钱