1

我想将逗号分隔的值列表作为参数传递给我正在使用 Visual Studio 2008 中的设计器基于我正在经历的一些强类型 DAL 教程构建的查询。该查询针对的是 DB2 数据库。这是我想要做的:

从客户所在的价格中选择 *(?)

我在 123456 中通过它的工作正常吗?

但是当我传入 '123456' 时失败(这是一个字符字段,所以我不知道为什么这不起作用;它必须在幕后添加这些)或 123456、123457 或 '123456'、'123457'

我将此页面添加到一个门户,其中所有数据访问都是基于 DAL 设计器模型和调用它的 BLL 完成的,因此我想以这种方式进行操作以保持一致性。这是可能的,还是工具不够灵活,无法完成我需要它做的事情?谢谢。

4

1 回答 1

1

这是人们使用参数化查询时常犯的一个错误。您必须记住,单个参数占位符“ ?”是单个值的替代品。

请参阅下面的问题链接,以获取 Joel Spolsky 针对此问题的巧妙解决方案。

参数化 SQL IN 子句?

还有一堆其他人回答了同样的问题,重申标准解决方案是动态构建 SQL 查询,为您需要传递的每个值附加一个参数占位符。

于 2009-03-26T23:21:04.553 回答