數(shù)據(jù)訪問層的第一種實(shí)現(xiàn):Access SQL_.Net教程
推薦:依賴注入機(jī)制及IoC的設(shè)計(jì)與實(shí)現(xiàn)我們設(shè)計(jì)的分層架構(gòu),層與層之間應(yīng)該是松散耦合的。因?yàn)槭菃蜗騿我徽{(diào)用,所以,這里的“松散耦合”實(shí)際是指上層類不能具體依賴于下層類,而應(yīng)該依賴于下層提供的一個接口。這樣,上層
經(jīng)過上面篇文章的介紹,整個系統(tǒng)的框架算是基本搭建完了,下面,我們要具體實(shí)現(xiàn)各個層次。關(guān)于數(shù)據(jù)訪問層的實(shí)現(xiàn),我準(zhǔn)備討論三種實(shí)現(xiàn)方式,這一篇文章討論第一種:Access 動態(tài)生成SQL。
顧名思義,這種實(shí)現(xiàn)將使用Access作為后臺數(shù)據(jù)庫,而操作方式也是最基本的使用SQL命令。
在具體編寫實(shí)現(xiàn)代碼之前,我們需要做一些準(zhǔn)備工作:
第一步,我們要將Access數(shù)據(jù)庫搭建完成,具體做法如下。
在Web工程下新建一個文件夾,命名為AccessData,并在其中新建一個mdb文件(即Access數(shù)據(jù)庫文件),按照前面介紹過的數(shù)據(jù)庫設(shè)計(jì)構(gòu)架,將數(shù)據(jù)表及表間關(guān)系建好,這里不再贅述。
第二步,我們要進(jìn)行一些配置。
打開Web工程下的Web.config文件,在其中的appSettings節(jié)點(diǎn)下,添加如下鍵值:
| <add key="AccessConnectionString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source={DBPath}"/> <add key="AccessPath" value="~/AccessData/AccessDatabase.mdb"/> |
第一條為Access的連接字符串,第二條為Access數(shù)據(jù)庫文件的路徑,其中“~”表示網(wǎng)站根目錄。
第三步,新建一個工程。
我們要新建一個工程AccessDAL,用來存放Access數(shù)據(jù)訪問層的代碼。
準(zhǔn)備工作做完了,現(xiàn)在來實(shí)現(xiàn)具體的代碼。
1.編寫數(shù)據(jù)訪問助手類
因?yàn)楹芏鄶?shù)據(jù)訪問操作流程很相似,所以,這里將一些可復(fù)用的代碼抽取出來,編寫成助手類,以此減少代碼量,提高代碼復(fù)用性。
這個助手類放在AccessDAL下,叫AccessDALHelper,主要負(fù)責(zé)Access數(shù)據(jù)庫的訪問。它包括三個方法:
GetConnectionString:從配置文件中讀取配置項(xiàng),組合成連接字符串。
ExecuteSQLNonQuery:執(zhí)行指定SQL語句,不返回任何值,一般用于Insert,Delete,Update命令。
ExecuteSQLDataReader:執(zhí)行SQL語句返回查詢結(jié)果,一般用于Select命令。
具體代碼如下:
|
using System; CacheDependency fileDependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.Config")); return connectionString.Replace("{DBPath}", dbAbsolutePath); /**//// <summary> for (int i = 0; i < parameters.Length; i ) connection.Open(); /**//// <summary> for (int i = 0; i < parameters.Length; i ) connection.Open(); return dataReader; |
分享:近期的幾個ASP.NET開發(fā)經(jīng)驗(yàn)總結(jié)和收集一:頁面中Page_Load事件 和 Page.IsPostBack執(zhí)行兩次的原因.
原因一:
當(dāng)<%@Page....中沒有AutoEventWireup定義時(shí)會導(dǎo)致Page_Load執(zhí)行兩次,如果有定義,且值為true時(shí),在IsPostBack中動態(tài)
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實(shí)現(xiàn)分頁示例代碼
- 相關(guān)鏈接:
- 教程說明:
.Net教程-數(shù)據(jù)訪問層的第一種實(shí)現(xiàn):Access SQL
。