我正在使用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命令>参数不需要名字,但是位置(和正确的类型)是重要
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。