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

时间:2020-03-05 18:49:50  来源:igfitidea点击:

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

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

解决方案

回答

目前尚不清楚我们在谈论什么条件。如果要将列设置为默认值,则可以使用DbNull.Value;。

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

or

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

回答

问题是DBNull,它在做:

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

编译就可以了。

回答

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

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