从C#DbCommand向SQL DB插入NULL
DbParameter param = comm.CreateParameter(); param = comm.CreateParameter(); param.ParameterName = "@StaffId"; if (!string.IsNullOrEmpty(activity.StaffId)) param.Value = activity.StaffId; param.DbType = DbType.String; comm.Parameters.Add(param);
以上不起作用(显然),对象未实例化。 我正在尝试在未填充StaffId时将NULL插入数据库。 我怎样才能做到这一点?
当需要将NULL作为参数传递给存储过程时,可以使用DBNull.Value。
param.Value = DBNull.Value;
或者您可以使用它而不是if
运算符:
param.Value = !string.IsNullOrEmpty(activity.StaffId) ? activity.StaffId : (object)DBNull.Value;
试试DBNull.Value
if (!string.IsNullOrEmpty(activity.StaffId)) param.Value = activity.StaffId; else param.Value=DBNull.Value;
你可以使用DBNull.Value
:
param.Value = DBNull.Value;
你总是可以使用null-coalescing运算符(??)
param.Value = activity.StaffId ?? (object)DBNull.Value;