所以我偶然发现了OracleCommand
中我称之为怪癖的东西。默认情况下,BindByName
设置为false
。在这种情况下,它们将按照添加到OracleCommand
的顺序应用于您的查询,而不是参数的名称。
这让我感到各种各样的悲痛,直到我发现参数没有像我预期的那样应用到我的查询中。
为什么我要这样做?我在这里遗失了重大的性能影响,还是只是为了与以前版本的OracleCommand
兼容?
答案 0 :(得分:1)
如果要将不同的值/参数绑定到两个或多个具有相同名称的绑定,则可能需要按位置进行绑定。
尽管我无法解释为什么如果您不想将相同的参数绑定到绑定,为什么您作为开发人员会命名相同的绑定。
最可能的原因是遗留功能,在以前的OracleCommand版本中不存在命名绑定,而引入命名绑定时,默认设置是使用位置绑定来防止破坏旧代码。