2011-08-23 41 views
0

我的建筑,如CheckBoxList的和列表框就可以了几个控件的网页(多选择启用)。这些控件将链接到一个sql数据库表,一个用于颜色,另一个用于大小。什么是设计查询的最佳方式,主要是'where'语句来筛选gridview中列出的与用户所选尺寸和颜色相匹配的衬衫。例如,如果用户从colorsCheckBoxList中检查红色和蓝色,并从sizesListbox中检查大小,那么gridview将只显示红色衬衫,大中型衬衫以及蓝色大中型衬衫。我完成了大部分工作,但我无法想象设计'where'子句的最佳方式。如果我允许每个控件只有一个选择,我可以很容易地创建它,但我更愿意允许多选。ASP,C#和SQL复杂的参数/查询示例,请

这与 '后面代码' 的页面(C#).aspx页。我读过使用参数是清除代码和安全性的最佳方法,但我想听听其他人的想法。

请让我知道你可能需要的任何进一步的细节,我非常感谢对于这个问题花费的任何时间。

+1

我们需要更多信息:模式/表结构? –

+0

如何共享模式? – Jacob

回答

0

是始终使用SQL参数删除SQL注入的风险。看到数据库模式很难说出你需要什么。这是我会在你的情况下做的。

SELECT shirtid, shirtname 
FROM shirts 
WHERE colorID IN (REDSHIRTID, BLUESHIRTID) 

您会将您的ID从您的选择框中作为REDSHIRTID和BLUESHIRTID放入。

0

您可以使用表值或XML参数的大小和颜色复式的ID通过。我个人会选择赞成表值参数。

0

的选择将取决于大小和颜色多个或单个的选择对于both.You可以锻炼与存储的过程。(此外,它会更快)当参数传递给SP可以传递选择为既作为变化字符串与逗号分隔的字符,g为大小'红色,蓝色,绿色',如果选择这三个。为颜色。 在SP可以先通过拆分单独的参数 '' 和查询作为

//创建SP命名

//传递参数的颜色和大小

//开头SP

//也许在声明中则

SELECT col1, col2, col3 from shirts 
    WHERE size IN (separated param list) AND 
    color IN (separated param list of colors) 

//结束SP

写拆分放慢参数代码