如何使用 MySqlParameter 有条件地将列设置为其默认值?

Posted

技术标签:

【中文标题】如何使用 MySqlParameter 有条件地将列设置为其默认值?【英文标题】:How do I conditionally set a column to its default value with MySqlParameter? 【发布时间】:2010-09-08 06:02:02 【问题描述】:

我在存储用户帐户的 mysql 数据库中有一个表。其中一列 expires 存储到期日期,但默认为 NULL。我需要能够删除过期日期并将其设置回默认值。

目前,我所有的 CRUD 例程都是使用带参数的 MySqlCommand 编写的。这可以直接使用 MySqlParameter 完成,还是我必须创建一个备用命令对象来处理这种可能性?

【问题讨论】:

【参考方案1】:

问题是 DBNull,正在做:

command.Parameters.AddWithValue("@parameter", null);

编译正常。

【讨论】:

【参考方案2】:

不清楚你在说什么条件。如果要将列设置为默认值,可以使用DbNull.Value;

command.AddWithValue("@param", DbNull.Value);

or

command.Parameters.Add("@param", <data type>).Value = DBNull.Value;

【讨论】:

【参考方案3】:

我通常在代码中将默认/空白的值设置为 null,然后在执行查询之前,运行以下循环:

foreach(MySqlParameter param in cmd.Parameters)
    if (param.Value == null) param.Value = DBNull.Value;

【讨论】:

以上是关于如何使用 MySqlParameter 有条件地将列设置为其默认值?的主要内容,如果未能解决你的问题,请参考以下文章

如何有条件地将某些内容封装在 HTML 元素中

MySqlParameter 作为 TableName

如何有条件地将元素插入列表?

如何有条件地将小部件添加到列表中?

如何有条件地将属性保存到 DFM?

如何无条件地将绿色添加图标放在插入行上