.Net 中讀寫Oracle資料庫的兩種方式

來源:互聯網
上載者:User
往Oracle資料庫裡面儲存一幅圖片,算是很稀鬆平常的大欄位操作,搞了半天就是沒存進去,提示是“System.Data.OleDb.OleDbException: ORA-01008: 並非所有變數都已關聯”。本以為是OleDbParameter的寫法不對,到CSDN上一查,問題出在驅動程式上:把“provider=MSDAORA.1;”改為“provider='OraOleDb.Oracle';”,問題解決。
    總結一下在 .Net 中讀寫Oracle資料庫常用兩種方式:OracleClient和OleDb,其中OleDb的方式根據驅動程式的不同又有兩種。

    1. OracleClient方式,是微軟專門針對Oracle資料庫開發的,僅在 .NET Framework 1.1 版中受支援。據說速度快、效能好,是推薦使用的方式。但根據我的經驗,當Oracle資料庫伺服器端採用英文字元集比如 US7ASCII 時,用戶端不管字元集如何設定,讀出的中文都是亂碼;若伺服器端用中文字元集比如 ZHS16GBK ,則無亂碼問題。
    引用類庫:System.Data.OracleClient.dll。 
    命名空間:System.Data.OracleClient。
    常用類:OracleConnection、OracleCommand、OracleDataAdapter、OracleTransaction、OracleDataReader等。
    典型連接字串:“data source=oratest;user id=scott;password=tiger”(注意:可不指定 provider 驅動)。

    2. OleDb方式,微軟和Oracle公司各自提供了OleDb的驅動程式,使用方法的差別很少。不管Oracle伺服器端用何字元集,讀寫中文均無亂碼問題。
    相同之處
    命名空間:System.Data.OleDb。
    常用類:OleDbConnection、OleDbCommand、OleDbDataAdapter、OleDbTransaction、OleDbDataReader等。
    不同之處
    引用類庫:微軟的只需要System.Data.dll;若用Oracle的驅動,雖然也只要引入System.Data.dll,但前提是首先安裝Oracle針對.Net的資料訪問組件。
    連接字串:與OracleClient方式相比,要添加一個provider,微軟為“provider=MSDAORA.1;”,Oracle為“provider='OraOleDb.Oracle';”。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.