.Net 中读写Oracle数据库的两种方式
2013-03-08 09:06
519 查看
昨天晚上往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';”。
http://www.weste.net/html/200408/20040811QBI131406.html
总结一下在 .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';”。
http://www.weste.net/html/200408/20040811QBI131406.html
相关文章推荐
- .Net 中读写Oracle数据库的两种方式
- 【转】oracle 字符集乱码解决-.Net 中读写Oracle数据库常用两种方式:OracleClient和OleDb
- .Net 中读写Oracle数据库的两种方式
- .Net 中读写Oracle数据库的两种方式
- .Net 中读写Oracle数据库的两种方式
- .Net 中读写Oracle数据库的两种方式
- .Net 中读写Oracle数据库的两种方式
- .Net 中读写Oracle数据库的两种方式
- I2c在应用层读写有两种方式
- Java 读写注册表的两种方式 Preferences 与 jRegistry
- Oracle数据库日期范围查询有两种方式
- .Net项目中通过ODAC方式链接Oracle数据库相关配置
- Java文件读写(两种方式)
- java读写注册表的两种方式,Preferences与jRegistry
- .NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格
- FileInputStream和FileOutputStream字节流的两种读写方式效率对比
- Crystal Report在.net中的两种显示方式
- Java多线程13:读写锁和两种同步方式的对比
- .NET实现ajax调用的两种方式
- 使用Oracle的instr函数与索引配合提高模糊查询的效率 一般来说,在Oracle数据库中,我们对tb表的name字段进行模糊查询会采用下面两种方式: 1.select * from tb wh