从C#DbCommand向SQL DB插入NULL

Sko*_*eet 17 c# sql dbcommand

        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);
Run Code Online (Sandbox Code Playgroud)

以上不起作用(显然),对象未实例化.我正在尝试在未填充StaffId时将NULL插入数据库.我怎样才能做到这一点?

And*_*nov 35

当需要将NULL作为参数传递给存储过程时,可以使用DBNull.Value.

param.Value = DBNull.Value;
Run Code Online (Sandbox Code Playgroud)

或者您可以使用它代替您的if运营商:

param.Value = !string.IsNullOrEmpty(activity.StaffId) ? activity.StaffId : (object)DBNull.Value;
Run Code Online (Sandbox Code Playgroud)


ada*_*ost 8

尝试 DBNull.Value

if (!string.IsNullOrEmpty(activity.StaffId))
   param.Value = activity.StaffId;
else
  param.Value=DBNull.Value;
Run Code Online (Sandbox Code Playgroud)