vb.net - 将参数用于 Oracle ODBC 连接

我正在使用 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();

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

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

https://stackoverflow.com/questions/811481/

相关文章:

php - 如何在 PHP 中 3 秒内切换到另一个页面?

php - 当前文档的 PHP 中的最后更新日期

php - 我将如何扫描目录以使用 php 链接到 pdf?

vb.net - 如何清除datagridview中的所有数据且不影响删除数据

.htaccess - 需要 mod_rewrite URL 信息

visual-c++ - SetWindowPos() 函数不移动窗口?

delphi - "Long running method is done"有设计模式吗?

vba - 限制多选列表框中的选择数

sql - 在 SQL 中选择多个字段的最大值的最佳方法是什么?

ms-access - MS Access 交叉表查询参数