如何使用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;