因此,这是一个SQLite数据库,表map_id
中的locations
列的类型为INTEGER(11)
。我尝试将map_id
为0
或-1
的所有实例更新为NULL
:
UPDATE locations SET map_id = NULL WHERE map_id = 0 OR map_id = -1
我将此查询添加到QueriesTableAdapter
中的强类型数据集中。我运行此查询,然后用基础数据库数据填充我的DataSet表locations
,希望我在0
列中看不到任何-1
或map_id
。 Booo!我有一些。我再次运行UPDATE查询并检查受影响的行数;它是零。因此,UPDATE查询不会影响任何行,这意味着没有map_id
0
或-1
的行。然而,我在被提取的DataTable
中看到了它们。这里发生了什么?
答案 0 :(得分:0)
因为SQLite is typeless,人们可以在任何列中存储任何内容而且不会抱怨。所以在我的案例中发生的事情是有人在INTEGER
类型列中存储了空字符串。这就是我的查询没有更新这些行的原因,即使它们看起来与NULL单元格类似。我现在在UPDATE
查询中添加了空字符串检查。希望这有助于有人在路上。