C ADO訪問多資料庫的C 庫

2021-09-08 09:23:15 字數 2165 閱讀 8869

[c#]ado訪問多資料庫的c#庫

羅朝輝 (

本文遵循「署名-非商業用途-保持一致」創作公用協議

或訪問 github:

類圖如下:

idatabase 是對外公開的介面類,其中定義了一堆運算元據庫的介面方法;

databasefactory 是視窗資料庫的工廠類;

databasetype 是乙個資料庫型別的列舉;

databasehelper 封裝一些和資料庫相關的常用的小工具方法,如便捷地建立 connection string,從 dataset 中讀取值等。

示例**如下:

internal

class

program

.", connstr);

else

console.writeline(

">> created database.");}}

private

void

closedatabase()

}public

void

testinsert()

", sqlcmd);

}catch

(exception ex)

. ", sqlcmd, ex.message);

}finally

}public

void

testfind()

", sqlcmd);

console.writeline(

">> found record.

", recordcount);

for (int i = 0; i < recordcount; i++)

, name:, address:, age:

", i + 1

, name, address, age);}}

catch

(exception ex)

. ", sqlcmd, ex.message);

}finally

}public

void

testupdate()

", sqlcmd);

}catch

(exception ex)

. ", sqlcmd, ex.message);

}finally

}public

void

testdelete()

", sqlcmd);

}catch

(exception ex)

. ", sqlcmd, ex.message);

}finally

}#endregion

static

void main(string

args)

}

執行輸出結果:

由於各個資料庫廠商有不同的資料庫實現,導致資料庫命令語法有一些細微的差別,因此需要特別注意。以下就列出一些常見的不同之處:

1,最大查詢記錄數

對於 sql server 使用 top 關鍵字。如:

select top 100 * from customer

對於 mysql 使用 limit 關鍵字。如:

select * from customer limit 100

對於 oracle 使用 rownum <=。如:

select * from customer where rownum <= 100

2,命令**現的轉義字元(詳見 databasehelper 類的 validate 方法)

對於 sql server,單引號 ' 要用兩個單引號 '' 替換;雙引號 " 要用兩個雙引號 "" 替換;

對於 mysql,單引號 ' 要用 \' 替換;反斜槓 \ 用於 \\ 替換。

C ADO方式連線oracle資料庫

在這裡先做乙個講解ado和odbc的關係,及其呼叫關係。圖1從圖中可以看出來 ado 可以看出來 比如我想要連線到oracle資料庫是後 可以通過兩種途徑的到我想要的ado connection的 連線字串 一種是通過直接的odbc,在連線字串裡面就是dns,這個由odbc資料來源管理器設定dns ...

訪問資料庫 訪問資料庫

程式執行的時候,資料都是在記憶體中的。當程式終止的時候,通常都需要將資料儲存到磁碟上,無論是儲存到本地磁碟,還是通過網路儲存到伺服器上,最終都會將資料寫入磁碟檔案。而如何定義資料的儲存格式就是乙個大問題。如果我們自己來定義儲存格式,比如儲存乙個班級所有學生的成績單 名字成績 michael99 bo...

redis 多資料庫

一台伺服器上都快開啟200個redis例項了,看著就崩潰了。這麼做無非就是想讓不同型別的資料屬於不同的應用程式而彼此分開。那麼,redis有沒有什麼方法使不同的應用程式資料彼此分開同時又儲存在相同的例項上呢?就相當於mysql資料庫,不同的應用程式資料儲存在不同的資料庫下。redis下,資料庫是由乙...