SQLCommand SqlParameter UPDATE C# 中的默认列值
SQLCommand SqlParameter Default Column Value in UPDATE C#
如何将默认值设置为SqlCommand SqlParameter的值?
SqlCommand 是 class 包含在 System.Data.SqlClient
我的架构不接受 DBNull.Value 作为值
SqlCommand command = new SqlCommand();
command.Parameters.Add(new SqlParameter("column_1", SqlDbType.VarChar, 1) { Value = DBNull.Value });
正如 lboshuizen 指出的那样,如果您的 "schema" 没有取 null,或者存储过程或查询的参数不能为 null,尝试给它一个 null 值可能会失败。在这种情况下,如果您知道它不接受它,您需要了解为什么要尝试将其设置为 null。我会猜测一个空字符串而不是 null 会起作用,或者其他合理的东西。
SqlParameterCollection
属性Parameters
有一个AddWithValue
方法:
您只需插入 null
即可为您处理:
command.Parameters.AddWithValue("@parameter", null);
如果您不能提供 null,您可以提供类似于空字符串的内容:
command.Parameters.AddWithvalue("@parameter", "");
您也很少需要使用此机制指定数据类型。
如果架构不接受 null,则表明该列是必需的并且需要一个合理的值。
为列使用默认值是架构的 属性。
- 因此,要么更改架构以提供默认值。
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
- 在您的应用程序代码中选择一个有效(非空)默认值并将其用作参数中的值。
const string default = "unknown";
...
SqlCommand command = new SqlCommand();
command.Parameters.Add(new SqlParameter("column_1", SqlDbType.VarChar, 1)
{ Value = default });
注意:更改架构以接受 NULL 被视为作弊:-)
如何将默认值设置为SqlCommand SqlParameter的值?
SqlCommand 是 class 包含在 System.Data.SqlClient
我的架构不接受 DBNull.Value 作为值
SqlCommand command = new SqlCommand();
command.Parameters.Add(new SqlParameter("column_1", SqlDbType.VarChar, 1) { Value = DBNull.Value });
正如 lboshuizen 指出的那样,如果您的 "schema" 没有取 null,或者存储过程或查询的参数不能为 null,尝试给它一个 null 值可能会失败。在这种情况下,如果您知道它不接受它,您需要了解为什么要尝试将其设置为 null。我会猜测一个空字符串而不是 null 会起作用,或者其他合理的东西。
SqlParameterCollection
属性Parameters
有一个AddWithValue
方法:
您只需插入 null
即可为您处理:
command.Parameters.AddWithValue("@parameter", null);
如果您不能提供 null,您可以提供类似于空字符串的内容:
command.Parameters.AddWithvalue("@parameter", "");
您也很少需要使用此机制指定数据类型。
如果架构不接受 null,则表明该列是必需的并且需要一个合理的值。
为列使用默认值是架构的 属性。
- 因此,要么更改架构以提供默认值。
ALTER TABLE {TABLENAME} ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
- 在您的应用程序代码中选择一个有效(非空)默认值并将其用作参数中的值。
const string default = "unknown"; ... SqlCommand command = new SqlCommand(); command.Parameters.Add(new SqlParameter("column_1", SqlDbType.VarChar, 1) { Value = default });
注意:更改架构以接受 NULL 被视为作弊:-)