0

我有一个查询,我希望最初调用它来捕获数据库中的所有结果。

然后,当组合框更新时,我希望它只捕获列WHERE column = SelectedItemFromComboBox

一切都完成了;我唯一缺少的是某种查询方式

SELECT *
FROM Table1
WHERE Column1 = ALL;

这样我就可以将其更新为

SELECT *
FROM Table1
WHERE Column1 = SelectedItemFromComboBox;

我最初可以将字符串设置为什么SelectedItemFromComboBox以便返回所有值?

谢谢。

4

5 回答 5

5

设置SelectedItemFromComboBoxnull并将您的查询更改为

SELECT *
FROM Table1
WHERE Column1 = SelectedItemFromComboBox
or SelectedItemFromComboBox is null
于 2012-07-02T10:16:11.183 回答
3

您可以将空字符串之类的内容放入SelectedItemFromComboBox并修改您的查询:

SELECT *
FROM Table1
WHERE SelectedItemFromComboBox = ''
   OR Column1 = SelectedItemFromComboBox;
于 2012-07-02T10:16:25.173 回答
2
SELECT *
FROM Table1
WHERE Column1 = Column1

将获取所有数据

所以你可以使用空值

SELECT *
FROM Table1
WHERE Column1 = isnull(some_value, Column1)

其中某个值为 NULL。为此,请使用空字符串,然后使用

SELECT *
FROM Table1
WHERE Column1 = isnull(CASE WHEN some_value = '' then NULL  else some_value end)), Column1)

这将返回你想要的

于 2012-07-02T10:19:10.570 回答
0

在这种情况下,您可以将“SelectedItemFromComboBox”设置为 0 并以这种方式更新查询,因此如果第一个条件不匹配它的 OR 条件,其中 0=0 并返回初始组合框值的所有记录。

从表 1 中选择 *

WHERE Column1 = SelectedItemFromComboBox 或 0=SelectedItemFromComboBox ;

于 2012-07-02T10:20:02.727 回答
0

如果由于某种原因您无法修改查询并且您只能控制输入的值,并且您没有使用参数化查询,并且您 100% 知道如何防止 SQL 注入,那么您可以设置SelectedItemFromComboBox'' OR 1 = 1. 这应该是非常罕见的,只有在您无法控制的错误代码并且完全是黑客攻击时才需要。

于 2012-07-02T10:23:58.837 回答