用C#訪問Access資料庫

來源:互聯網
上載者:User
access|訪問|資料|資料庫 我編寫這個程式的動機是當我希望用c sharp訪問MSAccess資料庫的時候我沒有辦法獲得任何資訊和參考材料.網上所能獲得的所有材料都是偏重於SQL的,所以我們將分兩步來編寫這個應用程式,第一我們將展示如何串連到MSAccess資料庫然後看看它有多複雜.最後,我們就這樣完成了這個程式.

閑言少序,讓我們開始正題.串連到資料庫的過程與我們早先的ADO串連過程相比已經發生了較大的變化.下面的圖表恰當的(我希望如此)OleDbConnection--> OleDbCommand --> OleDbDataReader.現在那些熟悉ado的人很明顯能看出兩者的相似之處但是為了使那些還沒有很好的適應ado的人能夠明白,下面是一些解釋.

OleDbConnection -->代表對資料庫的單一串連,根據底層資料庫的功能它能給你操縱資料庫的能力.有一點必須記住,雖然oledbconnection對象出了作用範圍,它也不會自動被關閉.所以,你將不得不顯示的調用這個對象的close()方法.

OleDbCommand -->這是就象我們在ado中使用的一樣的通常的command對象.你可以通過這個對象調用sql預存程序或是sql查詢語句.

OleDbDataReader -->這個類擁有非常大的重要性因為它提供了實際上的對資料庫底層資料集的訪問.當你調用OleDbCommand的ExecuteReader方法的時候它就會被建立,.NET beta2 sdk說不要直接建立這個類的對象.

現在你可以在.NET beta 2的文檔中看到更多的關於這些主要對象的說明,下面是指出如何在程式中訪問資料庫的原始碼.

using System;
using System.Data.OleDb;

class OleDbTest{

public static void Main()
{
//建立資料庫連接
OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\db1.mdb");

//建立command對象並儲存sql查詢語句
OleDbCommand aCommand = new OleDbCommand("select * from emp_test", aConnection);
try
{
aConnection.Open();

//建立datareader 對象來串連到表單
OleDbDataReader aReader = aCommand.ExecuteReader();
Console.WriteLine("This is the returned data from emp_test table");

//迴圈遍曆資料庫
while(aReader.Read())
{
Console.WriteLine(aReader.GetInt32(0).ToString());
}

//關閉reader對象
aReader.Close();

//關閉串連,這很重要
aConnection.Close();
}

//一些通常的異常處理
catch(OleDbException e)
{
Console.WriteLine("Error: {0}", e.Errors[0].Message);
}
}
}

成功運行這個程式的步驟
1.用msaccess建立一個名叫db1.mdb的資料庫
2.建立一個名叫emp_test的表單
3.使它包含下列資料域
emp_code int
emp_name text
emp_ext text
4.將上面的代碼儲存到sample.cs檔案中
5.確保資料庫位於c:\並確保mdac2.6或是更新的版本已經被安裝
6.編譯運行

現在讓我們來瞭解一些我們在oledbconnection對象的建構函式看到的東西的一些細節,在這裡你看見諸如"provider="之類的東西.下面是一些和ado.net相容的驅動程式類型.
sqlolddb --> Microsoft OLE DB Provider for SQL Server,
msdaora --> Microsoft OLE DB Provider for Oracle,
Microsoft.Jet.OLEDB.4.0 --> OLE DB Provider for Microsoft Jet
你可以選擇其中的任何一個但是他們會需要傳遞不同的參數,例如jet.oledb.需要傳遞mdb檔案的名字而sqloledb需要傳遞使用者名稱和密碼.

所有這些驅動程式都位於System.Data.OleDb命名空間裡,所以你必須包括它,而且它們和oledb provider for odbc不相容,也就是說你不能在vb6.0程式裡使用這些驅動程式來訪問資料庫,所以不要去尋找解釋為什麼要把這些資料庫放在c:\上的資料了

當你使用Microsoft SQL Server 7.0 或者更新版本的時候,下面是微軟給出的一些指導:
推薦使用.NET Data Provider在下列情況中,使用Microsoft SQL Server 7.0 或者更新版本的中介層應用程式,使用Microsoft Data Engine (MSDE)或icrosoft SQL Server 7.0 或者更新版本的單層應用程式.
建議將OLE DB Provider for SQL Server (SQLOLEDB)和OLE DB .NET Data Provider一起使用.
對於Microsoft SQL Server 6.5和更早的版本,你必須同時使用OLE DB Provider for SQL Server 和 OLE DB.NET Data Provider.
推薦使用Microsoft SQL Server 6.5和更早的版本或是Oracle的中介層應用程式使用OLE DB .NET Data Provider.
對於Microsoft SQL Server 7.0 或者更新版本,推薦SQL Server .NET Data Provider.
推薦單層應用程式使用Microsoft Access資料庫.
不推薦一個中介層程式同時使用OLE DB .NET Data Provider和Microsoft Access資料庫.
不再支援OLE DB Provider for ODBC (MSDASQL) 

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。