ASP.Net操作Access資料庫總結
1、資料庫的連線
引入名稱空間
using System.Data;
using System.Data.OleDb;
連線程式碼:
string strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;";
strConnection += @"Data Source=D:db_history.accdb;Persist Security Info=False;";
OleDbConnection objConnection = new OleDbConnection(strConnection);
objConnection.Open();
objConnection.Close();
對於連線這部分,如果使用的是Access07之前的資料庫字尾名均為*.mdb 而連線字串寫成Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:db_history.accdb ;Persist Security Info=False;否則會報錯。
2、資料庫的操作:
(1)DataReader :閱讀類,執行資料的“只向前”的讀取。
ADO.NET DataReader物件可以從資料庫中檢索只讀、只進的資料流。因為每次在記憶體中的資料只有一行,所以使用DataReader可提高應用程式的效能並減少系統開銷。它還提供了未緩衝的資料流,該資料流使過程邏輯可以有效地按順序處理從資料來源中返回的結果。
(2)DataSet
:DataSet,DataAdapter讀取資料。
dataset可以向資料庫那樣執行,但重要的是要記住:dataset物件不直接與資料或其他元資料進行互動,這使得開發人員能夠使用始終保持一致的程式設計模型,而不用理會源資料的駐留位置。
(3)ExecuteNonQuery
:利用ExecuteNonQuery,執行資料的插入、更新、刪除。
在ADO.NET中,ExecuteNonQuery方法用於執行不需要返回結果的命令,如插入、刪除和更新等操作。
(4)ExecuteScalar
:利用ExecuteScalar統計資料。
ExecuteScalar方法可以返回單個值,如求和、總行數等SQL語句的聚合函式。
3、路徑問題:
在asp.net中經常把連線字串寫在web.config中。但是access的連線字串是需要資料庫的絕對位置。即 碟符:/資料夾/檔案 這樣就導致經常把檔案拷貝後需要改路徑的問題。其實完全可以通過程式來獲得資料庫檔案的絕對路徑。具體如下:
web.config中只寫資料庫檔名 (一般會把資料庫檔案放在App_Data資料夾下,因為有一定的安全性)
<appSettings> <add key="ConnString" value="App_Data\db_history.accdb"/> </appSettings>然後在連線資料庫路徑除使用:string strConnection = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + AppDomain.CurrentDomain.BaseDirectory + System.Configuration.ConfigurationManager.AppSettings["ConnString"];這樣就可獲得資料庫的連線路徑了。