C 連線OleDbConnection運算元據庫

2021-10-06 16:24:03 字數 2728 閱讀 5755

對於不同的.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 =

newoledbconnection

(sconnectionstring)

;string sqlcreate =

"create table testsheet ([id] integer,[username] varchar,[userpwd] varchar)"

;oledbcommand cmd =

newoledbcommand

(sqlcreate, cn)

;//建立excel檔案:c:/test.xls

cn.open()

;//建立testsheet工作表

cmd.

executenonquery()

;//新增資料

cmd.commandtext =

"insert into testsheet values(1,'elmer','password')"

;cmd.

executenonquery()

;//關閉連線

cn.close()

;

c 連線mysql C 連線MySql

官方文件 機器配置 機器環境 mac 10.14 mysql版本 8.0.4 rc,自行編譯,編譯步驟 mysql 存放路徑 users shiyibo lnmp mysql ide clion 目錄劃分 main.cpp mydb.h mydb.cpp file mydb.h created by...

C 作業連線

c 連線作業本博文連線是我的相關c 的作業或者其他連線 小結 伴隨著學期結束,最終一次課設雖然算是做完了,但是對於還沒有能把權重演算法加入裡面感到有些遺憾,對於這個學期對於c 的學習自己感到尚有很多的不足。除了完成課堂作業與最後一次設計之外,我還在zigbee中運用c 寫了乙個串列埠助手和乙個相應的...

C 內部連線和外部連線

內部連線 假如乙個名稱對於他的編譯單元來說是區域性的,並且在連線時不會和其他編譯單元中的同樣的名稱相衝突,那麼這個名稱有內部連線 注 有時也將宣告看作是無連線的,這裡我們統一看成是內部連線的 以下情況有內部連線 a 任何的宣告 b 名字空間 包括全域性名字空間 中的靜態自由函式 靜態友元函式 靜態變...