代码之家  ›  专栏  ›  技术社区  ›  Adam Lassek

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

  •  2
  • Adam Lassek  · 技术社区  · 17 年前

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

    3 回复  |  直到 15 年前
        1
  •  3
  •   Adam Lassek    17 年前

    问题是DBNull,正在执行以下操作:

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

    编译OK。

        2
  •  0
  •   aku    17 年前

    你说的是什么情况还不清楚。如果要将列设置为默认值,可以使用 DbNull.Value

    command.AddWithValue("@param", DbNull.Value);
    
    or
    
    command.Parameters.Add("@param", <data type>).Value = DBNull.Value;
    
        3
  •  0
  •   JYelton Melchior Blausand    15 年前

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

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