我想将逗号分隔的值列表作为参数传递给我正在使用 Visual Studio 2008 中的设计器(基于我正在经历的一些强类型 DAL 教程)构建的查询。该查询针对 DB2 数据库。这就是我想做的:
从客户所在的价格中选择 *(?)
它工作得很好,我在 123456 中传递为 ?
但是当我传入“123456”(它是一个字符字段,所以我不知道为什么这不起作用;它必须在幕后添加这些)或123456、123457或“123456”、“123457”时失败
我将此页面添加到一个门户,其中所有数据访问都是基于 DAL 设计器模型以及调用它的 BLL 完成的,因此我想这样做以保持一致性。这是可能的还是在这种情况下该工具不够灵活,无法完成我需要它做的事情?谢谢。
这是人们在参数化查询时常犯的错误。你必须记住单个参数占位符“?
“ 是一个替代品单值.
请参阅下面的问题链接,了解 Joel Spolsky 针对此问题的巧妙解决方案。
"参数化 SQL IN 子句?"
还有很多其他人回答了同样的问题,重申标准解决方案是动态构建 SQL 查询,为需要传递的每个值附加一个参数占位符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)