【发布时间】:2017-04-26 11:54:14
【问题描述】:
在数据库迁移的上下文中,我必须在我的代码中将 OracleCommand 替换为 SqlCommand。在我的代码中,我使用了
myOracleCommand.BindByName = true;。 BindByName 属性在 SqlCommand 类中不存在,所以我想知道 SqlCommand 在参数方面是否为“默认绑定名称”,因此我可以删除这一行。
【问题讨论】:
-
参数在 Sql Server 中由名称绑定。您必须更改查询中的所有参数名称,还可能更改
SqlParameter实例。 -
是的,我同意更改查询和
SqlParameter实例的必要性。但是当涉及到我在帖子中提到的那行代码时,您同意我可以删除它吗? -
请检查查询中的名称:Oracle 使用
:作为参数,而 MS SQL 需要@,例如select * from MyTable where id = @prm_id->select * from MyTable where id = :prm_id -
@Neo - 正确,您可以删除该行。我还添加了一个更详细的答案,在 Sql Server 中无法按位置绑定,这就是 SqlCommand 没有这样一个属性的原因。
标签: c# asp.net sql-server oracle