[英]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.