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

vb.net – 将参数与Oracle ODBC连接一起使用

发布时间:2020-12-17 00:03:19 所属栏目:大数据 来源:网络整理
导读:我正在使用Microsoft ODBC for Oracle驱动程序成功连接到Oracle 10g数据库. 没有参数的常规查询可以正常工作,但参数化查询就好像没有传入参数一样. 恩. --this works fineSelect * from tbl1 where column1 = 'test'--this doesn'tselect * from tbl1 where
我正在使用Microsoft ODBC for Oracle驱动程序成功连接到Oracle 10g数据库.

没有参数的常规查询可以正常工作,但参数化查询就好像没有传入参数一样.

恩.

--this works fine
Select * from tbl1 where column1 = 'test'

--this doesn't
select * from tbl1 where column1 = ?

--odbc string parameter 'test'

这是我的连接字符串的样子:

"Driver={Microsoft ODBC for Oracle}; " & _
 "CONNECTSTRING=(DESCRIPTION=" & _
 "(ADDRESS=(PROTOCOL=TCP)" & _
 "(HOST=" & pstrServer & ")(PORT=" & pintPort.ToString & "))" & _
 "(CONNECT_DATA=(SERVICE_NAME=" & pstrPhysicalName & "))); " & _
 "uid=" & pstrUserName & ";pwd=" & pstrPassword & ";"

我正在为我的ODBC命令添加参数,如下所示:

arrOdbcParam(index) = New OdbcParameter("@paramName",paramValue)

...

cmd.Parameters.AddRange(arrOdbcParam)

原谅那些部分复制的,有些过时的代码.

这里有一些坏消息,但由于我只是遇到了类似的问题,下面是它如何使用Centura SQLBase的ODBC驱动程序:
OdbcCommand com = con.CreateCommand();
com.CommandText = @"
  SELECT  thing
  FROM    table
  WHERE   searchInt = ? AND searchDat = ?";
com.Parameters.Add(new OdbcParameter("",OdbcType.Int)).Value = 12345;
com.Parameters.Add(new OdbcParameter("",OdbcType.DateTime)).Value = DateTime.Now;
OdbcDataReader reader = com.ExecuteReader();

这将在“table”中搜索“searchInt”中值为12345且“serachDat”中的今天日期的记录.
注意事项:

>参数标记为?在里面SQL命令>参数不需要名字,但是位置(和正确的类型)是重要

(编辑:李大同)

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

    推荐文章
      热点阅读