我想将一个逗号删除的值列表作为参数传递给我正在使用Visual Studio 2008中的设计器构建的查询,该查询基于我正在经历的一些强类型DAL教程。该查询针对DB2数据库。这就是我想要做的事情:
从(?)
中的客户价格中选择*它运作良好我在123456传递了吗?
但是当我传入'123456'(这是一个char字段,所以我不知道为什么这不起作用;它必须在幕后添加这些)或123456,123457或'123456'时失败123457'
我正在将此页面添加到一个门户网站,其中所有数据访问都是基于DAL设计器模型完成的,其中BLL调用它,因此我希望以这种方式实现一致性。这是可能的还是这种情况下工具不够灵活,无法完成我需要它做的事情?感谢。
答案 0 :(得分:1)
这是人们使用参数化查询犯下的一个非常常见的错误。您必须记住,单个参数占位符“?
”可替代单个值。
请参阅下面的问题链接,了解Joel Spolsky对此问题的巧妙解决方案。
“Parameterizing a SQL IN clause?”
另外一群人回答了同样的问题,重申标准解决方案是动态构建SQL查询,为每个需要传递的值附加一个参数占位符。