2011-06-25 20 views
7

A través del anverso, deseo insertar el valor NULO en la columna cuyo Tipo de datos es Int.Insertar valor nulo en la columna Entero

que utiliza como esto:

POP.JobOrderID = Convert.ToInt32(DBNull.Value); 

Pero no puedo insertar un valor nulo, se lanza de error como "objeto no se puede lanzar desde DBNull a otros tipos":

cómo insertar valores NULL?

Respuesta

7

si desea hacerlo POP.JobOrderID debe ser de tipo int? (nullable int) int no

+0

POP es un objeto y JobOrderID es un Int. ¿Cómo asignar esto? – thevan

+0

Estoy usando arquitectura de tres niveles. Pasaría un parámetro como arriba de lo que había dado en la Pregunta. ¿Cómo aplicar int? (Nullable) en esto? – thevan

5

kleinohad es correcta. Por otra parte, debe asignar null, no DBNull.Value

+0

Estoy usando arquitectura de tres niveles. Pasaría un parámetro como arriba de lo que había dado en la Pregunta. ¿Cómo aplicar int? (Nullable) en esto? – thevan

0

De esta manera:

POP.JobOrderID = null; // JobOrderID should be of type int? which is a nullable-int 

Espero que ayude.

2

Este

POP.JobOrderID = new Nullable<Int32>(); 

debería funcionar también si el JobOrderID es un tipo anulable (int?).

Saludos

4

Uso Nullable<Int32> o simplemente un alias: int?.

POP.JobOrderID = 5; 
// or 
POP.JobOrderID = null; 

Uso en ADO.NET:

command.Parameters.AddWithValue("@JobOrderId", POP.JobOrderID ?? DBNull.Value); 

que es igual a:

POP.JobOrderID.HasValue ? POP.JobOrderID.Value : DBNull.Value; 
Cuestiones relacionadas