使用C 語言操作ADO資料庫

2021-03-31 08:56:28 字數 3633 閱讀 4117

訪問資料庫是大多數應用程式的一部分,而且隨著c#和ado.***的發布,

這個過程已經變得相當的簡單.本文將展示下面四個基本的資料庫操作:

1.讀資料.這包括諸如整數,字串和日期等不同的資料型別.

2.寫資料.就象讀資料一樣我們會寫這些通常的資料型別.這是通過sql語

句來實現的.

3.更新或是修改資料.我們還是使用簡單sql語句.

4.刪除資料.使用sql.

這些操作是對乙個微軟access 2000資料庫進行的,但是sql或是其它

ado資料來源可以通過簡單的改變連線字串來使用.

開始第一步

為了使用ado類,我們需要包括進ado.***命名空間(namespace)和一些

精巧的日期類.在你要進行資料庫操作的地方加入下列幾行**.它應該被

放置在命名空間引入**行的下面而在類定義的上面.

using system.data; // 申明變數

using system.data.ado; // 資料庫

using system.globalization; // 日期

根據你所參與的工程的型別,你可能需要增加對system.data命名空間的

引用.你可以根據在你新增上面的**以後編譯器是否產生錯誤來判斷.要

新增system.data命名空間,你可以:

1.在solution explorer-references 分支中右鍵單擊.

2.選擇"新增引用"

3.選擇.*** framework標籤.

4.雙擊system.data.dll條目

5.單擊ok

6.system.data現在應該出現在了solution explorer的引用列表中

了.因為連線字串在大多數操作中都要使用,所以我建議你將它設定成你要

編寫的類的成員.注意:在你的程式中,資料庫檔案的路徑有可能不同.

//屬性

public const string db_conn_string =

"driver=; "+

"dbq=d://cs//testdbreadwrite//******test.mdb";

讀資料現在一切都變得有趣起來.讀資料可以通過adodatareader類來實現.

(參看chris maunder的文章"ado.*** adodatareader類"來獲取關

於這個類的更多資訊.)讀資料的步驟如下:

1.我們用adoconnection來開啟乙個資料庫.

adoconnection conn =

new adoconnection(db_conn_string);

conn.open();

2.我們編寫乙個sql語句來定義將要取出的資料.這個資料執行的結果是

返回乙個adodatareader 物件.注意execute方法中的out關鍵字.這在

c#中意味著通過引用傳遞引數.

adodatareader dr;

ado***mand cmd =

new ado***mand( "select * from person", conn );

cmd.execute( out dr);

3.我們迴圈遍歷adodatareader中的每乙個記錄直到我們完成要做的工

作.注意:資料被直接作為乙個字串返回同時資料網域名稱稱用來指明讀的數

據域.while( dr.read() )

4.我們收工

但是,作為好的程式設計師我們還需要加進許多try/catch/finally語句來

確保我們處理了所有的錯誤.

trycatch( exception ex )

finally

讀取不同的資料型別

dr["stuff"]這個語句通常能夠返回乙個資料.但是要返回乙個int或者

datetime物件的話通常需要進行資料轉換.這通常可以通過使用

adodatareader許多內建轉換器中的乙個來實現.也就是:

int nordinalage = dr.getordinal( "age" );

int nage = dr.getint32( nordinalage );

datetime tupdated = (datetime)dr["updated"];

注意getordinal定位資料域用名字來讀取資料的用法.如果資料域是空

白的(還沒有填入任何資料),上面的**會丟擲乙個異常.要捕捉這種情

況,我們可以用isnull方法檢查是否有資料存在,如下所示:

int nordinalage = dr.getordinal( "age" );

if( dr.isnull( nordinalage ) )

else

插入,修改,刪除和其他sql命令

插入,修改,刪除過程可以非常容易的通過sql語句來實現.下面的**執

行一條sql命令來插入一條記錄.

// sql 命令

string ssql***mand =

"insert into person (age, firstname, description,

updated) " +

"values( 55, 'bob', 'is a penguin', '2001/12/25 20:30:15' );";

// 建立***mand物件

ado***mand cmdadder = new ado***mand(

ssql***mand,

db_conn_string);

cmdadder.activeconnection.open();

// execute the sql ***mand

int nnoadded = cmdadder.executenonquery();

system.console.writeline(

"/nrow(s) added = " + nnoadded + "/n" );

注意:try/catch**沒有在上面的例子裡出現,但是應該包括上面的代

碼.插入

上面的**通過建立乙個sql命令然後執行它來插入一條記錄.一些在編

寫sql命令時應注意的事項如下:

1.數值資料應該直接表示.沒有單引號(').

2.字串的表示應該包括在單引號中('blah').

3.確保字串中不包含任何嵌入的單(雙)引號.這會使事情混淆.

4.日期和時間資料用包裹在單引號中的國際通用形式來表示

('yyyy/mm/dd hh:mm:ss').

修改update命令指明要修改的資料和修改的動作.executenonquery()的返

回值指出改變的記錄的個數,所以如果有5個peter's在表單中的話下面

的**將返回5.

string ssql***mand =

"update person set age = 27 where firstname = 'peter'";

刪除delete命令指明要刪除的記錄.executenonquery()的返回值指出改變

的記錄的個數,所以如果有2個bobo在表單中的話下面的**將返回2.兩

個bobo都會被刪除.

string ssql***mand =

"delete from person where firstname = 'bobo'"";

資料庫操作(ADO)

qtp工具本身自帶有資料查詢和驗證功能,但是使用的人會感覺這個功能使用起來比較麻煩,靈活性和復用性較低,於是我們選擇了用指令碼呼叫ado元件實現資料庫的操作,現總結下工作中用到的資料庫操作,如下 一 最常用的資料庫取值操作 獲取資料庫查詢語句 sql select from user where n...

ADO 資料庫操作

1.準備工作 1 把下面兩局 寫進stdafx.h裡。位置是倒數第二行,或者 include mfc 自動化類 這句的後面。別的位置沒試過 如果改變了位置,要先清理解決方案,再重新生成解決方案 import c program files common files system ado msado1...

VB使用ADO操作Access資料庫

這裡只是個簡單不能再簡單的vb小程式例項,但它包含這幾個關鍵字 vb6.0 ado access 環境 visual basic 6.0 企業版 非精簡版,不然會缺少必須的控制項 資料庫 access資料庫,資料庫是xs.mbd,內建表為xj 結果 vb使用ado連線access資料庫,查詢xj表中...