从C#DbCommand向SQL DB插入NULL
上面的方法不起作用(显然),对象没有实例化。我试图在未填充StaffId时将NULL插入数据库。如何实现这一点?尝试从C#DbCommand向SQL DB插入NULL,c#,sql,dbcommand,C#,Sql,Dbcommand,上面的方法不起作用(显然),对象没有实例化。我试图在未填充StaffId时将NULL插入数据库。如何实现这一点?尝试DBNull.Value DbParameter param = comm.CreateParameter(); param = comm.CreateParameter(); param.ParameterName = "@StaffId"; if (!string.IsNullOrEmpty(activity.St
DBNull.Value
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);
您可以使用
DBNull.Value
:
if (!string.IsNullOrEmpty(activity.StaffId))
param.Value = activity.StaffId;
else
param.Value=DBNull.Value;
当需要将NULL作为参数传递给存储过程时,可以使用DBNull.Value
param.Value = DBNull.Value;
或者,如果操作员:
param.Value = DBNull.Value;
您始终可以使用空合并运算符(?)
您可以使用DBNull.ValuePerfect!如果你把这个作为答案贴出来,我会把它标记为正确的。至于为什么。。。有没有一种方法可以使用这个工具?这里的一种简化if-else语句的运算符??它似乎不喜欢字符串/DBNull.Value转换!?试试这个:param.Value=!string.IsNullOrEmpty(activity.StaffId)?activity.StaffId:(对象)DBNull.Value;谢谢你的编辑,安德烈-非常感谢。这似乎疯狂,必须把它作为一个对象虽然(对我来说无论如何)。
param.Value = !string.IsNullOrEmpty(activity.StaffId) ? activity.StaffId : (object)DBNull.Value;
param.Value = activity.StaffId ?? (object)DBNull.Value;