之前筆者一直用
c#連線
sql server
資料庫。近期由於工作需要,需要用
c#連線
oracle
資料庫,並且要通過儲存過程,來運算元據庫中的資料,實現增、刪、改、查(有分頁功能)功能。並且,為了今後對資料庫擴充套件方便,對現在的**改動最小的情況下,實現資料庫的平穩切換,必須採用
oledb
的方式連線
oracle
資料庫、操作儲存過程。
首先去網上搜尋資料,確實找到了很多
c#連線
oracle
資料庫,和用儲存過程運算元據庫的資料。但是仔細研究發現,清一色的全部是使用
oracleclient
(oracle
專用驅動)的方式對
oracle
資料庫及儲存過程進行操作。沒辦法,只能自己動手、豐衣足食。經過
3天左右的辛苦努力,終於實現了用
oledb
連線oracle
資料庫,並且用儲存過程來操作
oracle
資料庫的方法。下面將實現方式總結一下。
用oledb
操作oracle
儲存過程,有幾個難題;
1、返回記錄集,也就是
oracle
的游標;
2、對於某些特殊的應用,有可能需要返回多個記錄集;
3、將儲存過程中的資料,通過輸出引數的形式返回給程式(因為要做分頁,需要將記錄數輸出來);4、對
text
大文字字段(對應
oracle
的資料型別是
clob
)的增、改、查操作;
5、對特殊字元的查詢,如查詢文字中是否包含「
%」、「
/」、「
』」、「
_」等符號;
接下來,主要針對以上問題,進行介紹;
一、連線
oracle
資料庫連線
oracle
資料庫,主要有
2種方式。一種是使用微軟的資料庫驅動進行連線;另外一種是使用
oracle
的資料庫驅動進行連線;
經過在網上查資料,說是
oracle
的資料庫驅動,中文可能會出現亂碼;微軟的驅動雖然中文沒有亂碼,但是對於
clob
型別的字段,無法操作;經過對比,決定使用
oracle
的資料庫驅動。因為應用中,肯定要有
clob
型別的字段操作;但是經過測試,未發現中文出現亂碼的情況;
øoracle
資料庫連線方式:
provider=oraoledb.oracle.1;user id=username;password=dbpassword;data source=databasename;persist security info=true;extended properties='plsqlrset=1';
extended properties='plsqlrset=1'
注意:上面這個屬性一定要帶上,否則無法操作有返回游標引數的儲存過程; ø
微軟的資料庫連線方式:
provider=msdaora.1;data source=allrun;user id=allrunadmin;password=allrun;persist security info=true;
建議使用oracle資料庫的連線方式。 二、
儲存過程,返回多個記錄集
oracle
儲存過程指令碼:
c#程式操作儲存過程:
因為主要是介紹運算元據庫儲存過程的方法,如何連線資料庫請自己寫;一、對
clob
欄位的增、改、查;
假設表名為:
desktop_page
,包含2
個字段:
usercode
(普通字串)、
content
(clob
型別)oracle
儲存過程指令碼為:
四、對特殊字元的查詢,如查詢文字中是否包含「
%」、「
/」、「
』」、「
_」等符號;
oracle
指令碼:
以上是筆者操作
oracle
資料庫總結出來的一些經驗,然後對大家有所幫助。s
C 通過ADO方式連線Oracle資料庫總結
這篇博文發出去,就算在csdn上開博了,點滴積累,見諸博文 還是先從簡單的說起,c 連線資料庫的方法多種多樣,以下僅以ado的方式進行簡略說明。開發環境 winxp oracle 11g vs2010 window自動生成資料庫連線字串的方法,但當我新建了str.udl,開啟時卻彈出缺少.dll的提...
通過 Oledb 來連線 Oracle 資料庫
前面的文章是介紹了乙個關於使用 oracleclient 來訪問 oracle 資料庫的 demo,不過,好像微軟宣稱從 net 4.0 開始將放棄對 oracleclient 的支援,所以接下來的博文還是會介紹更多的 net 訪問 oracle 資料庫的方法,其實訪問 oracle 資料庫有很多種...
通過 ODBC 來連線 Oracle 資料庫
這一節還是介紹簡單的,使用 odbc 來連線 oracle 資料庫,說實在的,使用 oracleclient oledb odbc 訪問 oracle 資料庫,都比較簡單,無非就是注意一下這個資料庫連線字串就 ok 了,下面就給出資料庫連線字串吧 然後再來看 demo 的 code behind 很...