我有一个查询,我希望最初调用以捕获数据库中的所有结果。
然后,当组合框更新时,我希望它只捕获列WHERE column = SelectedItemFromComboBox
。
一切都完成了;我唯一缺少的是查询的方法
SELECT *
FROM Table1
WHERE Column1 = ALL;
然后我可以将其更新为
SELECT *
FROM Table1
WHERE Column1 = SelectedItemFromComboBox;
我最初可以为SelectedItemFromComboBox
设置字符串,以便返回所有值?
感谢。
答案 0 :(得分:5)
将SelectedItemFromComboBox
设置为null
并将您的查询更改为
SELECT *
FROM Table1
WHERE Column1 = SelectedItemFromComboBox
or SelectedItemFromComboBox is null
答案 1 :(得分:3)
您可以将类似空字符串的内容放入SelectedItemFromComboBox
并修改您的查询:
SELECT *
FROM Table1
WHERE SelectedItemFromComboBox = ''
OR Column1 = SelectedItemFromComboBox;
答案 2 :(得分: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)
这将返回您想要的内容
答案 3 :(得分:0)
在这种情况下,您可以将“SelectedItemFromComboBox”设置为0并更新 以这种方式查询,如果第一个条件与OR条件不匹配,其中0 = 0和0 返回初始组合框值的所有记录。
SELECT * FROM Table1
WHERE Column1 = SelectedItemFromComboBox OR 0 = SelectedItemFromComboBox;
答案 4 :(得分:0)
如果由于某种原因您无法修改查询并且您只能控制进入的值,并且您没有使用参数化查询,并且您知道100%如何防止SQL注入,那么您可以设置SelectedItemFromComboBox
到'' OR 1 = 1
。这应该是极其罕见的,只有在您无法控制的错误代码时才需要,并且完全是黑客攻击。