No está del todo claro a qué se refiere. Si usted está tratando de pasar un valor nulo en un parámetro de SQL, debe utilizar DBNull.Value
como el valor para su SqlParameter
(o lo que sea el tipo que está utilizando). Si desea representar un entero que puede contener nulos en C#, use int?
(o Nullable<int>
- son lo mismo).
No puede almacenar un valor nulo en una variable de tipo de valor no anulable normal. tipos de valores con valores nulos son todavía estructuras, sino que envuelven el tipo no anulable y añaden un valor booleano para indicar si se trata de un valor "real" o nula. C# agrega el azúcar sintáctica alrededor de él, lo que le permite utilizar la null
literal para las asignaciones, varias conversiones, operadores, etc. levantadas:
int? value = 5;
value = null;
if (value == null)
{
...
}
Si eso no ayuda, por favor nos da más información sobre exactamente lo que estamos tratando que hacer.
EDITAR: Bien, entonces parece que StockBO.Client_id
debería ser del tipo short?
- pero eso no permitirá que DBNull.Value
se establezca directamente. Debe usar null
para establecer la ID del cliente en el valor nulo. Cada vez que se traduce entre los objetos y los parámetros de SQL y los resultados, que necesita para llevar a cabo ese tipo de conversión usted mismo - si usted se encuentra haciendo esto de forma regular, se resuelve algunos métodos de ayuda para que sea más fácil para usted.
Por supuesto, si usted comienza a usar LINQ a SQL ni nada de eso, usted no tiene que preocuparse acerca de DBNull.Value
- LINQ proveedores tienden a apoyar directamente los tipos de valor anulables.
Estoy muy orgulloso de ver la publicación ..gracias ma he actualizado mi pregunta, por favor, compruebalo – TinTin
@Ayyappan: he editado mi respuesta. –
Gracias señor jon skeet – TinTin