首页 新闻 会员 周边

Oracle自带的oracle.manageddataaccess.dll在使用的时候出现各种问题

0
悬赏园豆:5 [已关闭问题] 关闭于 2015-09-28 12:41

1、首先我想知道使用.NET的System.Data.OracleClient由于是调用Oracle本地的客户端,效率是不是会很低,其次,使用这种方式,会产生一系列的编译平台问题,比如开发人员用的是32位的OracleClient,服务器上想用64位的,有没有办法。

2、使用非托管的库时,带参数执行Update语句的时候,会出现受影响的条数为0,完全找不到任何错误,也没有提示,返回的就是0行,且数据中数据未被修改。但是换成微软的OracleClient在同样的情况下返回的就会是多行,且数据中的数据被真实修改。

3、之前看的文章中,说Oracle的库比微软的要好很多,但是,出现这个问题,在网上完全搜索不到,是目前大家使用的都还是Oracle的客户端+System.Data.OracleClient么?

 

谢过~~~

ensleep的主页 ensleep | 小虾三级 | 园豆:1682
提问于:2015-09-28 09:29
< >
分享
所有回答(2)
0

odp.net

羽商宫 | 园豆:2490 (老鸟四级) | 2015-09-28 09:35

ODP.NET包含两个库,一个是托管的,一个是非托管的,我用的是托管的,但是,出错,怎么办

支持(0) 反对(0) ensleep | 园豆:1682 (小虾三级) | 2015-09-28 09:39
2

最终发现问题在没有设置command.BindByName = true;

      默认情况下ODP.Net 绑定变量时,sql语句中的变量顺序必须和变量绑定顺序一致,否则Fill查不到数据,cmd.ExecuteNonQuery()返回0无法执行, 将BindByName 设为true后,sql变量顺序和绑定顺序即可不一致.

感谢原作者:http://www.cnblogs.com/gossip/archive/2011/11/27/2265230.html

ensleep | 园豆:1682 (小虾三级) | 2015-09-28 12:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册