【问题标题】:Update only one column value in Access Database - VB仅更新 Access 数据库中的一列值 - VB
【发布时间】:2015-02-26 02:24:44
【问题描述】:

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

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

【问题讨论】:

  • 你能用代码更新问题吗?
  • 要么修改更新代码以处理空值,要么运行查询将所有空日期设置为某个“旧”日期...即 1949 年 4 月 28 日

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


【解决方案1】:

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

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

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

其次,如果您正在更新一行并将复选框值设置为 true,您可以查看所需的任何列并在更新查询中设置它们的默认值。这使得查询更复杂,更难以支持。

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

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

【讨论】:

    猜你喜欢
    • 2013-04-06
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多