我必须使用现有的 ODBC 连接来查询 DB2 数据库。执行简单查询按预期工作,但是一旦我尝试执行参数化查询,它就不起作用:
SELECT
ColumnA,
ColumnB
FROM
MyTable
WHERE
ColumnA = ? AND
ColumnB = ?
在其他帖子中建议使用?
,但我总是得到空结果(虽然没有错误消息)。当我尝试使用命名参数的标准 SQL 方式时(并将 SQL 语句更改ColumnA = @ColumnA AND ColumnB = @ColumnB
为如下所示
odbcCommand.Parameters.AddWithValue( ColumnA", 1234 );
odbcCommand.Parameters.AddWithValue( ColumnB", 9999);
显示以下错误消息:
System.Data.Odbc.OdbcException: ERROR [42S22] [IBM][CLI Driver][DB2] SQL0206N “@ColumnA”在使用它的上下文中无效。SQLSTATE=42703...
使用odbcCommand.Parameters.Add( new OdbcParameter( "ColumnA", Integer ){ Value = 1234 } );
而不是表明这已被弃用(并且也不起作用)。我想避免使用连接的 SQL 语句,但我找不到一种方法来让参数化查询对 DB2 数据库起作用。