(?,?...?) 或 (@field1,@field2...@fieldn) 在参数化查询中?

(?,?...?) or (@field1,@field2...@fieldn) in parmeterized queries?

这是编码错误吗?

我有一个问题

INSERT INTO sometable (field1,field2...fieldn) VALUES (?,?,.....?)

然后

cmd.Parameters.Add("TOFnr", OdbcType.Int, 10).Value = orderId;
cmd.Parameters.Add("LineNr", OdbcType.Int, 10).Value = maxLineNr;
cmd.Parameters.Add("Date", OdbcType.VarChar, 8).Value = rowHeader["Date"];

除了在 Add 周围有一个 if 条件,导致该行之后的数据进入错误的变量外,代码有效。

占位符("TOFnr"等)仅供程序员参考,不被sql或c#本身使用,对吧?

在查询中使用命名参数不是更不容易出错吗?

INSERT INTO sometable (field1,field2...fieldn) VALUES (@TOFnr,@LineNr,.....@fieldn)

是c#通过odbc连接到borland paradox

Isn't it less error-prone to used named parameters in the query?

是的,是的。不幸的是,ADO.NET ODBC 驱动程序不允许在 SQL 语句中传递命名的 SQL 参数,所以很遗憾,您无法使用 ODBC 驱动程序。

我不是 Paradox 方面的专家,但可能有专门针对 Paradox 的驱动程序允许命名参数。你在那里可能会有更多的运气。