一尘不染

如何通过ODBC C#绑定参数?

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上绑定值的语法是什么?


阅读 435

收藏
2020-05-19

共1个答案

一尘不染

Odbc不能使用命名参数。这意味着命令字符串对每个参数都使用占位符,并且该占位符是单个问号,而不是参数名称。

OdbcCommand.Parameters

然后,您需要按照在命令字符串中出现的顺序,将参数添加到集合中

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数据库的保留关键字,如果要将其用作字段名或表名,则需要将每个引用都用方括号括起来。我强烈建议,如果可能的话,更改该表名,因为您会经常遇到此问题。

2020-05-19