如何通过ODBC C#绑定参数?
我需要绑定来自C#的ODBC查询参数。 这是示例代码,但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上绑定值的语法?
Odbc不能使用命名参数。 这意味着命令string为每个参数使用占位符,并且此占位符是单个问号,而不是参数名称。
OdbcCommand.Parameters
然后,您需要按照它们出现在命令string中的顺序将参数添加到集合中
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数据库的保留关键字,如果你想使用它作为字段名或表名,则需要用括号括起每个引用。 我强烈build议,如果可能的话,更改表名,因为你会经常遇到这个问题。
使用"?"
如果使用的是ODBC,则代替@
。
尝试做如下:
OdbcCommand cmd = conn.CreateCommand(); cmd.CommandText = "SELECT * FROM user WHERE id = ?"; cmd.Parameters.Add("@id", OdbcType.Int).Value = 4; OdbcDataReader reader = cmd.ExecuteReader();