2011-06-13 55 views
0

我想使用ADO.NET向Interbase XE數據庫發出參數化SELECT。我正在使用的代碼如下:無法使用ADO.NET爲Interbase創建參數化查詢

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的在它識別語法作爲參數化查詢。

這比我所期待的要困難得多。我是一個ficko嗎?你能幫我嗎?

+0

這似乎是命名參數廣泛支持的常態,你嘗試使用?相反,即cm_recnum =:CaseNumber到cm_recnum =? – PeskyGnat 2011-06-14 01:44:58

+0

你完全正確。您應該將其作爲答案,以便我可以將其標記爲正確。 – David 2011-06-15 12:54:38

+0

補充說,我最初並沒有把它作爲答案,因爲它只是一個預感,對於你使用的特定驅動程序不太瞭解。 – PeskyGnat 2011-06-15 13:16:06

回答

0

這似乎是命名參數不被廣泛支持的常態,您是否嘗試使用?相反,即cm_recnum =:CaseNumber到cm_recnum =?

+0

賓果!!!!!!!!!! – David 2011-06-15 13:41:35