C# 在列中选择特定记录,否则所有记录

C# 在列中选择特定记录,否则所有记录,c#,asp.net,sql,sql-server,C#,Asp.net,Sql,Sql Server,我正在ASP.NET/SQL Server 2012中建立一个网站 我的问题是,我有包含以下字符串的下拉框作为示例 <asp:ListItem>Doesn't matter</asp:ListItem> <asp:ListItem>I don't drink</asp:ListItem> <asp:ListItem>Occasionally/Socially</asp:ListItem> &l

我正在ASP.NET/SQL Server 2012中建立一个网站

我的问题是,我有包含以下字符串的下拉框作为示例

<asp:ListItem>Doesn't matter</asp:ListItem>
<asp:ListItem>I don't drink</asp:ListItem>
<asp:ListItem>Occasionally/Socially</asp:ListItem>                
<asp:ListItem>I party hard</asp:ListItem> 
我不想使用简单的IF-ELSE存储过程,因为我有很多可用的过滤选项,而使ELSE看起来设计得非常糟糕

非常感谢

与或一起使用时:

在这种情况下,仅当参数不同于“无所谓”时,才会计算TextCol


注意,我使用文本值只是为了演示。您应该使用IdCol而不是TEADTEXT,因为您的值可能会更改。

如果您的值中实际有“从dbo中选择IdCol,TextCol。表中@TextCol=”无所谓“或TextCol=@TextCol@Dhaval:这就是我明确提到参数和IdCol的原因。您还可以使用子查询,如..=从dbo.DrinkingHabits中选择习惯\ u name,其中iddrinkinghabits=1嗨,蒂姆,谢谢你的建议。问题是列中没有“无关紧要”的记录。这意味着代表默认的“从列中选择所有记录”,所以我想做的是,如果用户单击“无关紧要”,将检索所有记录,但没有一条记录具有“无关紧要”。数据库中的所有记录都将具有这三个值中的任意一个。我不喝酒,也不偶尔参加社交活动,也不参加聚会。如果你没有尝试过我的方法,它正是你想要的。请注意,我不是比较列值,而是比较传递给命令的参数。
If SelectedItem is 'Doesn't Matter' return all rows in column
ELSE IF
Retrieve records in column where drinking_habit = ListItem.
SELECT IdCol, TextCol
FROM dbo.Table
WHERE @TextCol = 'Doesnt matter' OR TextCol = @TextCol