2012-03-21 12 views
11
 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); 

Powyższe nie działa (oczywiście), obiekt nie jest instancjonowany. Próbuję wstawić NULL do bazy danych, gdy StaffId nie jest wypełnione. Jak mogę to osiągnąć?Wstawianie wartości NULL do SQL DB z C# DbCommand

+1

można użyć DBNull.Value –

+0

Perfect! Jeśli opublikujesz to jako odpowiedź, oznaczę to jako poprawne. – SkonJeet

+0

Zrobione teraz :) Dzięki –

Odpowiedz

23

Można użyć DBNull.Value gdy trzeba przekazać NULL jako parametr do procedury przechowywanej.

param.Value = DBNull.Value; 

Albo można użyć że zamiast operatora if:

param.Value = !string.IsNullOrEmpty(activity.StaffId) ? activity.StaffId : (object)DBNull.Value; 
+1

Dzięki za edycję Andrey - doceń to. Wydaje się szalone, że trzeba to rzucić jako przedmiot (przynajmniej dla mnie). – SkonJeet

7

Spróbuj DBNull.Value

if (!string.IsNullOrEmpty(activity.StaffId)) 
    param.Value = activity.StaffId; 
else 
    param.Value=DBNull.Value; 
+0

czy istnieje sposób użycia? operator dla jakiegoś stenogramu, jeśli jeszcze nie napisano tutaj? Wydaje się nie podobna do konwersji String/DBNull.Value !? – SkonJeet

+1

Spróbuj tego: param.Value =! String.IsNullOrEmpty (activity.StaffId)? activity.StaffId: (object) DBNull.Value; –

3

Można użyć DBNull.Value:

param.Value = DBNull.Value; 
Powiązane problemy