从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; 
Interesting Posts