繁体   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