Вставка NULL в SQL DB из С# 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);
Вышеприведенное не работает (очевидно), объект не создается. Я пытаюсь вставить NULL в базу данных, когда StaffId не заполняется. Как я могу это достичь?
Ответы
Ответ 1
Вы можете использовать DBNull.Value, когда вам нужно передать NULL в качестве параметра хранимой процедуры.
param.Value = DBNull.Value;
Или вы можете использовать это вместо своего оператора if
:
param.Value = !string.IsNullOrEmpty(activity.StaffId) ? activity.StaffId : (object)DBNull.Value;
Ответ 2
Попробуйте DBNull.Value
if (!string.IsNullOrEmpty(activity.StaffId))
param.Value = activity.StaffId;
else
param.Value=DBNull.Value;
Ответ 3
Вы можете использовать DBNull.Value
:
param.Value = DBNull.Value;
Ответ 4
Вы всегда можете использовать оператор с нулевым коалесцированием (??)
param.Value = activity.StaffId ?? (object)DBNull.Value;