【问题标题】:(?,?...?) or (@field1,@field2...@fieldn) in parmeterized queries?(?,?...?) 或 (@field1,@field2...@fieldn) 在参数化查询中?
【发布时间】:2017-10-07 11:26:21
【问题描述】:

这是不好的编码吗?

我有一个问题

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。

【问题讨论】:

标签: c# sql parameters odbc paradox


【解决方案1】:

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

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

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

【讨论】:

  • 混蛋。操操操操操操心的操操操!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多