c# - 为什么我要按位置绑定(bind) OracleCommand 参数?

标签 c# oracle

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

这让我很伤心,直到我发现参数没有按照我的预期应用于我的查询。

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

最佳答案

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

尽管我无法解释为什么您作为开发人员不想将相同的参数绑定(bind)到它们时将绑定(bind)命名为相同的。

这很可能是由于以前版本的 OracleCommand 中不存在命名绑定(bind)的遗留功能,当引入命名绑定(bind)时,默认使用位置绑定(bind)来防止遗留代码的破坏。

关于c# - 为什么我要按位置绑定(bind) OracleCommand 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40494676/

相关文章:

c# - 我如何一次更新我的 GUI 分数?

Java 的准备语句与 Oracle Merge

oracle - oracle中数据字典表和数据字典 View 有什么区别?

c# - 以角度调用后 WebApi 'Multiple actions were found that match the request' 错误

c# - 为什么在将方法分配给委托(delegate)时不添加括号?

c# - Rx : EnumerableEx. For() 与 Enumerable.SelectMany()

c# - 比较两种不同类型列表中的变量

oracle - 在Oracle中,PARALLEL被广泛使用。 PARALLEL、PARALLEL(8)、PARALLEL(a,8) 之间有什么区别?

java - 如何使用 Hibernate 在 Oracle 中保留 LARGE BLOB (>100MB)

sql - Varchar2 和 char 之间的主要区别是什么