加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Oracle中的参数化查询问题

发布时间:2020-12-16 00:36:21 所属栏目:asp.Net 来源:网络整理
导读:我正在使用Oracle.DataAccess而不是过时的System.Data.OracleClient,我似乎无法将多个参数传递到我的更新查询 这个工作 OracleCommand.CommandText = "UPDATE db SET column1 = :param1 WHERE column2 = 'Y'"OracleCommand.Parameters.Add(New OracleParame
我正在使用Oracle.DataAccess而不是过时的System.Data.OracleClient,我似乎无法将多个参数传递到我的更新查询

这个工作

OracleCommand.CommandText = "UPDATE db SET column1 = :param1 WHERE column2 = 'Y'"
OracleCommand.Parameters.Add(New OracleParameter("param1","1234"))

但是我想要能够传递多个参数

这是我的完整代码

OracleConn.Open()
    OracleCommand = OracleConn.CreateCommand()
    OracleCommand.CommandText = "UPDATE db SET column1 = :param1 WHERE column2 = :param2"
    OracleCommand.CommandType = CommandType.Text
    OracleCommand.Parameters.Add(New OracleParameter("param1","1234"))
    OracleCommand.Parameters.Add(New OracleParameter("param2","Y"))
    OracleCommand.ExecuteNonQuery()

传递多个参数但不是更新时,我的SELECT查询似乎工作

解决方法

虽然我看不到你的例子有什么问题,我想知道你是否被老BindByName问题打了。默认情况下,ODP.NET按照要添加到集合中的顺序将参数绑定到查询中,而不是根据您的名称。尝试在您的OracleCommand对象上将BindByName设置为true,看看是否可以解决问题。

我已经遇到这个问题了很多次,我使用我自己的工厂方法来创建自动将此属性设置为true的命令。

经典无用的Oracle文档here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读