天天看點

Access之C#連接配接Access

如果是個人用的小程式的話。一般都推薦用Sqlite和Access

可以在收索你需要的版本。

微軟ADO.NET資料提供程式

資料提供程式

命名空間

程式集

OLE DB

System.Data.OleDb

System.Data.dll

Microsoft SQL Server

System.Data.SqlClient

System.Data.dss

Microsoft.SQL Server Mobile

System.Data.SqlServerCe

System.Data.SqlServerCe.dll

ODBC

System.Data.Odbc

沒有特定的資料提供程式直接映射到Jet引擎(比如微軟的Access資料庫),如果要和Acces資料檔案互動,可以使用OLE DB資料提供程式或者ODBC資料提供程式。

由定義在System.Data.OleDb命名空間下的類組成的OLE DB 資料提供程式能讓你通路所有支援基于傳統COM的OLD DB協定的資料庫,使用這個資料庫提供程式,能非常簡單地改變連接配接字元串中的“provider”,并能和各種OLE DB資料庫進行通信。

如果你安裝了微軟的office。那麼也安裝了Access資料庫,現在我們來一步一步完成對Access資料庫的通路

打開Access資料庫,選擇建立資料庫。選擇儲存路徑和取名,單擊建立即可

Access之C#連接配接Access

然後的界面就很熟悉了

Access之C#連接配接Access

 單擊 "單擊以添加" 可以選擇資料類型

Access之C#連接配接Access

選擇類型後。比如這裡選擇文本類型。就可以輸入字段名稱

Access之C#連接配接Access

這裡你會看到前面有一個預設的列ID。預設是主鍵。自增的。你可以選擇目前列。在屬性中看到,當然。你也可以改變目前字段的資料類型

Access之C#連接配接Access

為了簡化操作,我這裡隻建立3個字段用于測試

字段名稱

字段類型

字段說明

name

string

姓名

age

int

年齡

crateDate

DateTime

添加時間(預設值是當天)

建立時間createDate需要設定預設值,選擇createDate列,在屬性部分。單擊預設值。輸入Now(),确定即可。還可以設定表達式格式。可以自己去看

Access之C#連接配接Access
Access之C#連接配接Access

建立完成後。ctrl+s儲存。輸入表名稱user,确定

現在建立一個控制台程式。來連接配接Access

添加引用:System.Data.dll,

添加命名空間:using System.Data.OleDb;

為了友善。把資料庫拷貝到項目的Debug目錄下面,編寫測試代碼

運作後提示錯誤:

Access之C#連接配接Access

仔細看sql語句是不是沒有錯誤的文法。再仔細想想呢?對,user是關鍵字,需要加用[]包裹。像這樣:[user]

string sql = "insert into [user](name,age)values(@name,@age)";

修改後在運作,人品爆發的成功了

Access之C#連接配接Access

是不是迫不及待的想看看Access資料庫中是否真的插入成功呢?

打開資料庫界面。F5重新整理試試

Access之C#連接配接Access

當然,你可以可以編寫sql查詢

Access之C#連接配接Access
Access之C#連接配接Access

右鍵:

Access之C#連接配接Access
Access之C#連接配接Access

跟着一步一步下來是不是也沒有想象中的那麼難呢?其實什麼都不難。隻要你肯努力:)

來看看連結字元串:

 //連接配接Access字元串

  string conStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=userInfo.accdb;Persist Security Info=False";

這裡的Microsoft.ACE.OLEDB.12.0,是連接配接Excel對象的接口引擎,與之對應的是:microsoft.jet.oledb.4.0

那麼問題來了:

Microsoft.jet.oledb.4.0和Microsoft.ACE.OLEDB.12.0引擎有什麼差別呢?

共同點:都是做為連接配接Excel對象的接口引擎

不同點:

對于不同的Excel版本,有兩種接口可供選擇:Microsoft.Jet.OLEDB.4.0(以下簡稱 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下簡稱 ACE 引擎)。

Jet 引擎,可以通路 Office 97-2003,但不能通路 Office 2007。

ACE 引擎是随 Office 2007 一起釋出的資料庫連接配接元件,既可以通路 Office 2007,也可以通路 Office 97-2003。

另外:Microsoft.ACE.OLEDB.12.0 可以通路正在打開的 Excel 檔案,而 Microsoft.Jet.OLEDB.4.0 是不可以的。

是以,在使用不同版本的office時,要注意使用合适的引擎。

我這裡用的Access 2007,是以用的是ACE引擎

Access之C#連接配接Access

Data Source=userInfo.accdb。這裡通路的是相對路徑。因為資料庫放在了Debug下面,但我來自火星。我就偏偏不喜歡把資料庫放到Debug下面。

我想在項目中單獨建立一個目錄來存放資料庫。那怎麼辦呢?好吧。程式員是偉大的。那你可以改路徑,在項目下面建立一個db檔案夾。把資料集拷貝到裡面,結構圖

Access之C#連接配接Access

從圖可以看出來,從Debug目錄到db目錄要退兩次,那麼不就是 “..\..\” 。對嗎?

那立馬改改看看效果:

string conStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\..\db\userInfo.accdb;Persist Security Info=False";

對與否。你自己去測試下。哈哈。

記住:sql server中是可以拼接多條sql語句。然後一次性執行的。對吧,但Access是不行的。如果要執行多條sql語句。必須循環周遊。執行一條在執行下一條,直到海枯石爛。

為了更好的維護。當然是首選把連接配接字元串配置到app.config中

看看我已經配好了的

最後提供一個SQLHelper.cs  類

sqlite、Access都隻要安全驅動就可以用資料庫。那sql server是不是也可以 呢。答案是正确的。

隻要安裝Microsoft SQL Server 2005 Express Edition,就可以使用sql資料庫了

當安裝vs2010或其他版本,也就順帶的安裝了express Edition

Microsoft SQL Server 2005 Express Edition官網下載下傳:

<a href="http://www.microsoft.com/zh-cn/download/details.aspx?id=21844" target="_blank">http://www.microsoft.com/zh-cn/download/details.aspx?id=21844</a>

但要管理資料庫就需要安裝SQL Server Management Studio。

在網上找到一片關于Express edition 開啟遠端連接配接的方法,我沒嘗試過。真的。我不騙你

<a href="http://blog.csdn.net/xiongyilong/article/details/1925353" target="_blank">http://blog.csdn.net/xiongyilong/article/details/1925353</a>

轉載于此:

SQL Server 2005 Express 作為微軟資料庫的低端解決方案,在開發小型應用和WEB應用中有廣泛的使用。但是SQL Server 2005 Exrpress在預設安裝下隻允許本機通路,如何啟用網絡通路功能就很有必要,現在我簡單的介紹一下。

1、 确 認成功安裝SQL Server 2005 Express和 資料庫服務已經啟動。安裝完成後,可以通過随SQL Server 2005 Express一同安裝的工具 SQL Server Configuration Manager 檢視資料庫服務和其他的配置資訊。

Access之C#連接配接Access

上圖顯示資料庫服務已經啟用。

2、 查 看SQL Server Express 2005 網絡配置資訊(SQL Server 2005 Network Configuration――&gt; Protocols for SQLEXPRESS)。預設的情況下右邊清單中的Named Pipes和TCP/IP的狀态為Disable,即沒有啟用。右鍵點選這兩項,在彈出菜單中選中Enable啟用這兩個協定,如下圖。

Access之C#連接配接Access

3、 在TCP/IP協定上輕按兩下滑鼠,彈出對話框。修改對話框Protocol屬性頁中的“Listen All ”項設為“no”。IP Address屬性頁中,修改你要資料庫服務監聽的IP位址的屬性,修改Enabled屬性為Yes,修改TCP Dynamic Ports屬性為空,TCP Port項在預設安裝下為空,現在修改為我們監聽端口1433。修改後的狀态如下圖所示;

Access之C#連接配接Access
Access之C#連接配接Access

4、 啟動管理工具

Access之C#連接配接Access

,管理界面如下所示:

Access之C#連接配接Access

選中“Surface Area Configuration for Services and Connection”選項

5、 改修改DATA Engine的Remote Connection屬性,修改後的屬性如下圖所示:

Access之C#連接配接Access

6、 完成以上操作後需要重新啟動資料庫服務才能使修改生效,下圖的操作可以完成資料庫服務的重新開機。

Access之C#連接配接Access

7、 重新開機後,可以在指令視窗輸入如下指令“netstat - na”指令檢視伺服器監聽的所有端口,如果我們裝置的1433端口正在監聽,我們啟用SQL Server 2005 Express網絡操作成功。當然也可以使用telnet 指令來驗證資料庫操作是否成功。使用netstat指令操作如下圖所示。

Access之C#連接配接Access

 好了。至此。完