尝试将 ODBC 命名参数与 SAP IQ/Sybase IQ DB 一起使用时出错

Error when trying to use ODBC Named Parameter with SAP IQ/Sybase IQ DB

我有以下适用于 mySQL 但不适用于 SAP IQ/Sybase IQ DB 的命令:

string sql = "select * from someTable where fieldName=@name";
command.CommandText = sql;
command.Parameters.Add(new OdbcParameter()
{
    DbType = System.Data.DbType.Int32,
    Value = 1,
    ParameterName = "@name",
    Direction = System.Data.ParameterDirection.Input
});

command.ExecuteNonQuery();

错误是:

ERROR [42S22] [Sybase][ODBC Driver][Sybase IQ]Column '@name' not found

我怀疑命名参数不适用于 Sybase IQ。

解决方法是根据参数的顺序,使用question maek代替命名参数:

string sql = "select * from someTable where fieldName=?";