为什么我要按位置绑定OracleCommand参数?

时间:2016-11-08 19:11:12

标签: c# oracle

所以我偶然发现了OracleCommand中我称之为怪癖的东西。默认情况下,BindByName设置为false。在这种情况下,它们将按照添加到OracleCommand的顺序应用于您的查询,而不是参数的名称。

这让我感到各种各样的悲痛,直到我发现参数没有像我预期的那样应用到我的查询中。

为什么我要这样做?我在这里遗失了重大的性能影响,还是只是为了与以前版本的OracleCommand兼容?

1 个答案:

答案 0 :(得分:1)

如果要将不同的值/参数绑定到两个或多个具有相同名称的绑定,则可能需要按位置进行绑定。

尽管我无法解释为什么如果您不想将相同的参数绑定到绑定,为什么您作为开发人员会命名相同的绑定。

最可能的原因是遗留功能,在以前的OracleCommand版本中不存在命名绑定,而引入命名绑定时,默认设置是使用位置绑定来防止破坏旧代码。