我需要在 C# 的 ODBC 查询上绑定(bind)参数。这是示例代码,但是 VS 告诉我缺少一个参数。
OdbcCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM user WHERE id = @id";
cmd.Parameters.Add("@id", OdbcType.Int).Value = 4;
OdbcDataReader reader = cmd.ExecuteReader();
在 ODBC 上绑定(bind)值的语法是什么?
最佳答案
Odbc 不能使用命名参数。这意味着命令字符串为每个参数使用占位符,这个占位符是一个问号,而不是参数名称。
然后你需要按照它们在命令字符串中出现的顺序在集合中添加参数
OdbcCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM [user] WHERE id = ?";
cmd.Parameters.Add("@id", OdbcType.Int).Value = 4;
OdbcDataReader reader = cmd.ExecuteReader();
您还有另一个问题,USER 词是每个 MS Access 数据库的保留关键字,如果您想将其用作字段名或表名,则需要用方括号将每个引用括起来。我强烈建议,如果可能的话,更改该表名,因为您会经常遇到这个问题。
关于c# - 如何通过 ODBC C# 绑定(bind)参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18082840/