代码改变世界

随笔档案-2012年4月16日

ADO.Net(ODP.NET)执行命令时参数对象不能共用

2012-04-16 14:34 by java线程例子, 182 阅读, 收藏,
摘要: 今天在测试分布式数据库访问时,遇到异常:OracleParameter已在对象集合中,刚开始的时候还以为是重复添加的问题,经过多方测试还是有问题,后来将传入的参数克隆一份赋给命令参数,问题解决.后面觉得很奇怪,就去网上查了下,好像是这些参数对象不能同时添加到多个命令中,具体机制就不得而知了.但一个参数对象被添加到多个命令中,实际上都是指向同一份,对象还是同一个,如果ADO在底层会修改命令参数(返回值参数肯定得修改),那么不允许一个参数对象添加到多个命令中就很容易理解了.因为那样会造成混乱. private void PrepareCommand(OracleCommand Command, O 阅读全文