无法使用ADO.NET为Interbase创建参数化查询

时间:2011-06-13 13:37:27

标签: ado.net interbase

我正在尝试使用ADO.NET向Interbase XE数据库发出参数化SELECT。我正在使用的代码如下:

using (OdbcConnection odbcConnection = new OdbcConnection(ConfigurationManager.ConnectionStrings["LawbaseTest"].ToString()))
      {
        odbcConnection.Open();
        using (OdbcCommand odbcCommand = new OdbcCommand())
        {
          odbcCommand.CommandType = CommandType.Text;
          odbcCommand.Connection = odbcConnection;
          odbcCommand.Parameters.Add(new OdbcParameter(":CaseNumber", 1265));
          odbcCommand.CommandText = "select * from cmstub where cm_recnum = :CaseNumber";
          using (IDataReader rdrData = odbcCommand.ExecuteReader())
          {
            Output(rdrData["CM_DESC"]);
          }
        }
      }

我收到以下错误:

ERROR [42S22] [DataDirect][ODBC InterBase driver][InterBase]Dynamic SQL Error, SQL error code = -206, Column unknown, CASENUMBER

这向我建议,查询不会以其识别为参数化查询的语法发送到Interbase。

这比我想象的要难得多。我是个骗子吗?你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

似乎规范参数不被广泛支持,您尝试使用吗?相反,即cm_recnum =:CaseNumber到cm_recnum =?