C#連接OleDbConnection操作數據庫

對於不同的.net數據提供者,ADO.NET採用不同的Connection對象連接數據庫。這些Connection對我們屏蔽了具體的實現細節,並提供了一種統一的實現方法。

Connection類有四種:SqlConnection,OleDbConnection,OdbcConnection和OracleConnection。

Sqlconnetcion類的對象連接是SQL Server數據庫;OracleConnection類的對象連接Oracle數據庫;OleDbConneetion連接支持OLE DB的數據庫,如Access;而OdbcConnection類的對象連接支持ODBC的數據庫。與數據庫的所有通訊都是通過Connection對象來完成的。

這次先介紹使用OleDbonnection來鏈接各種數據源。

ADO.Net的數據訪問對象有Connection,Command、DataReader和DataAdaper等,由於每種.NET Data Provider都有自己的數據訪問對象,因此他們的使用方式相似。這裏主要介紹OLEDB.NET Data Provider的各種數據訪問對象的使用。

注意:OLEDB.NET數據提供程序的命名空間是System.Data.OleDb,在使用它時應該在引用部分增加該語句。使用不同的Connection對象需要導入不同的命名空間。OleDbConnection的命名空間爲System.Data.OleDb。SqlConnection的命名空間爲System.Data.SqlClient。OdbcConnection的命名空間爲System.Data.Odbc。OracleConnection的命名空間爲System.Data.OracleClinet。

OleDbConnection對象

在數據訪問中首先必須建立到數據庫的物理連接。OLEDB.NET Data Provider 使用OleDbConnection類的對象標識與一個數據庫的物理連接。

1、OledbConnection類
OleDbConnection類的常用屬性及其說明

———————————————————————————

屬性 說明

ConnectionString 獲取或設置用於打開數據庫的字符串

ConnectionTimeOut 獲取在嘗試建立連接時終止嘗試並生成錯誤之前所等待的時間

Database 獲取當前數據庫或連接打開後要使用的數據庫名稱

DataSource 獲取數據源的服務器名或文件名

Provider 獲取在連接字符串的“Provider = ” 子句中指定的OLEDB提供程序的名稱

State 獲取連接的當前狀態

———————————————————————————

State枚舉成員值:

———————————————————————————

Connecting 連接對象正在與數據源連接

Executing 連接對象正在執行命令

Fetching 連接對象正在檢索數據

Open 連接對象處於打開狀態

———————————————————————————

OleDbConnection類的常用方法如下表所示:

———————————————————————————

Open 使用ConnectionString所指定的屬性設置打開數據庫連接

Close 關閉與數據庫的連接,這是關閉任何打開連接的首選方法

CreateCommand 創建並返回一個與OleDbConnection關聯的OleDbCommand對象

ChangeDatabase 爲打開的OleDbConnection更改當前數據庫

———————————————————————————

2、建立連接字符串ConnectionString

建立連接的核心是建立連接字符串ConnectionString,直接建立連接字符串的方式是先創建一個OleDbConnection對象,將其ConnectionString屬性設置爲如下:

Provider = Microsoft.Jet.OLEDB.4.0;Data Sourse = Access數據庫;UserId = 用戶名;Password = 密碼;

其中Provider和DataSource是必選項,如果Access數據庫沒有密碼,UserId和Password可以省略。由於Access數據庫是基於文件的數據庫,因此在實際項目中應該將Data Source的屬性值轉換爲服務器的絕對路徑。

最後用Open方法打開連接。

舉例:

String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=c:/test.xls;" + "Extended Properties=Excel 8.0;";
OleDbConnection cn = new OleDbConnection(sConnectionString);
string sqlCreate = "CREATE TABLE TestSheet ([ID] INTEGER,[Username] VarChar,[UserPwd] VarChar)";
OleDbCommand cmd = new OleDbCommand(sqlCreate, cn);
//創建Excel文件:C:/test.xls
cn.Open();
//創建TestSheet工作表
cmd.ExecuteNonQuery();
//添加數據
cmd.CommandText = "INSERT INTO TestSheet VALUES(1,'elmer','password')";
cmd.ExecuteNonQuery();
//關閉連接
cn.Close();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章