仅更新Access数据库中的一个列值 - VB

时间:2015-02-26 02:24:44

标签: vb.net ms-access sql-update tableadapter

我的应用程序中有一个功能,用户可以选择自行订阅。发生这种情况时,不会对数据库中的其他字段进行任何更改,并且仅取消选中用户的Subscription标记。我这样做是通过获取数据行和设置字段值,然后更新表中的数据行。

这适用于所有最近创建的记录,但是一些旧记录为日期字段设置了空白值,现在是必需的。因此,当我尝试取消订阅此类型的旧记录时,它会尝试从数据库中检索空值,然后更新相同的后面,从而导致错误 - “无法在日期字段中插入空值”

1 个答案:

答案 0 :(得分:0)

首先,如果在必填列中有一个空值的表,则最好在表上运行更新查询,该查询将为此强制/必需列输入默认值。 Wayne G. Dunn在对你的问题的评论中提到了这一点。例如:

UPDATE [TABLE1] SET [datefield] = '4/28/1949' where [datefield] = null
  

**在执行对生产数据的查询之前,请确保在运行此类查询之前备份数据并使用测试表进行测试。

其次,如果要对行进行更新并将checkbox值设置为true,则可以查看所需的任何列,并在更新查询中设置其默认值。这使查询更复杂,更难以支持。

我建议您使用第一个选项并在表上运行更新查询。第二个选项会为查询添加不必要的代码,以更新复选框。

如果发布一些查询示例和表结构,您将获得更具体的答案。您可以考虑编辑问题以包含这些详细信息。