C#连接ORACLE数据库乱码问题
1. OracleClient方式,是微軟專門針對(duì)Oracle數(shù)據(jù)庫(kù)開(kāi)發(fā)的,僅在 .NET Framework 1.1 版中受支持。據(jù)說(shuō)速度快、性能好,是推薦使用的方式。但根據(jù)我的經(jīng)驗(yàn),當(dāng)Oracle數(shù)據(jù)庫(kù)服務(wù)器端采用英文字符集比如 US7ASCII 時(shí),客戶端不管字符集如何設(shè)置,讀出的中文都是亂碼;若服務(wù)器端用中文字符集比如 ZHS16GBK ,則無(wú)亂碼問(wèn)題。
引用類庫(kù):System.Data.OracleClient.dll。
命名空間:System.Data.OracleClient。
常用類:OracleConnection、OracleCommand、OracleDataAdapter、OracleTransaction、OracleDataReader等。
典型連接字符串:“data source=oratest;user id=scott;password=tiger”(注意:可不指定 provider 驅(qū)動(dòng))。
2. OleDb方式,微軟和Oracle公司各自提供了OleDb的驅(qū)動(dòng)程序,使用方法的差別很少。不管Oracle服務(wù)器端用何字符集,讀寫中文均無(wú)亂碼問(wèn)題。
相同之處
命名空間:System.Data.OleDb。
常用類:OleDbConnection、OleDbCommand、OleDbDataAdapter、OleDbTransaction、OleDbDataReader等。
不同之處
引用類庫(kù):微軟的只需要System.Data.dll;若用Oracle的驅(qū)動(dòng),雖然也只要引入System.Data.dll,但前提是首先安裝Oracle針對(duì).Net的數(shù)據(jù)訪問(wèn)組件。
連接字符串:與OracleClient方式相比,要添加一個(gè)provider,微軟為“provider=MSDAORA.1;”,Oracle為“provider='OraOleDb.Oracle';”。
轉(zhuǎn)載于:https://blog.51cto.com/lionkas/1309445
總結(jié)
以上是生活随笔為你收集整理的C#连接ORACLE数据库乱码问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 简单的Tab切换组件
- 下一篇: C#设计模式系列:原型模式(Protot