簡體   English   中英

為什么通過ODBC C#進行參數化無法綁定?

[英]Why is parametrization via ODBC C# not binding?

我已經找到了如何通過ODBC C#綁定參數? 在C#中如何通過ODBC進行參數化的示例,但在我的代碼中CommandText保留為“?” 並返回錯誤-可能出現故障。

這是我的代碼:

string variable = SVariablaKlas.ToUpper(); //this is simple var like 123

Conn odbc = new Conn();
odbc.db.Open(); //this works fine -> connection is established

OdbcCommand dbCommand = odbc.db.CreateCommand();
dbCommand.CommandText = "";

if (a)
{
  dbCommand.CommandText = "SELECT col1 FROM TableName WHERE ID = ?";
} else if (b)
{
  dbCommand.CommandText = "SELECT col2 FROM TableName WHERE ID = ?";
}

dbCommand.Parameters.ADD("@ID", OdbcType.Char).Value = variable;
//or if I try this: ...Parameters.ADD(new OdbcParameter(string.Empty, variable);

OdbcDataReader dbReader = dbCommand.ExecuteReader();

...

在“ Parameters.ADD”的兩種情況下,我的dbCommand.CommandText都是“ SELECT Table1 WHERE ID =?” 然后我會得到錯誤:“ WHERE”附近的錯誤[HY000]:語法錯誤(1)

知道哪里出問題了嗎?

對於數據庫,我正在使用SQLite3和ODBC驅動程序SQLite3 ODBC驅動程序,版本0.9993.00.00

您的SQL應該是

dbCommand.CommandText = "SELECT col2 FROM TableName WHERE ID = @ID";

因為您的參數名為“ @ID”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM