在 Visual Studio 2008 中使用设计器将逗号分隔列表作为参数传递给 db2 查询的 IN 子句

Posted

技术标签:

【中文标题】在 Visual Studio 2008 中使用设计器将逗号分隔列表作为参数传递给 db2 查询的 IN 子句【英文标题】:Passing comma delimited list as parameter to IN clause for db2 query using designer in visual studio 2008 【发布时间】:2010-10-15 19:57:37 【问题描述】:

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

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

它运行良好,我通过 123456 作为?

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

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

【问题讨论】:

【参考方案1】:

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

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

“Parameterizing a SQL IN clause?”

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

【讨论】:

以上是关于在 Visual Studio 2008 中使用设计器将逗号分隔列表作为参数传递给 db2 查询的 IN 子句的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2008 中打开使用 Visual Studio 2005 创建的 rdl?

visual studio 2008调试时浏览器网页打开到一半就不动了,不能正常调试,哪个朋友指点下,不胜感激。

开始在 Visual Studio 2008 中使用 Crystal Reports 2008 for winform 创建报表?

从 Visual Studio 2008 升级到 Visual Studio 2010 速成版

Visual Studio 2008 / C#:如何在项目中查找死代码?

在 Visual Studio 2008 中使用附加到进程调试 DLL 项目