¿Cómo podríamos manejar null para un campo de fecha y hora (obtenido de SQL Server) en nuestro programa en C#?¿Cómo manejar null para un campo datetime (DB) allow-null en nuestro programa?
6
A
Respuesta
12
Hay 3 enfoques comunes aquí;
- si usted está hablando de
object
(tal como se lo trae desde un lector de datos), entoncesDBNull.Value
puede representar nula. No suelo dejar esto fuera de la capa de datos, aunque - debido a la historia de .NET 1.1,
DateTime.MinValue
se interpreta comúnmente comonull
; un número mágico, tal vez, pero funciona y es compatible con la mayoría de los datos vinculados, etc. - en .NET 2.0,
Nullable<T>
significa que puede usarDateTime?
- es decir, un nulo de DateTime; solo useDateTime?
donde quiera que se refiera a unDateTime
que puede ser nulo, y puede darle un valor denull
o unDateTime
válido.
Algunos otros pensamientos sobre los datos de acceso y los nulos:
- para pasar de un
SqlCommand
que necesidad usoDBNull.Value
, nonull
- véase más adelante - durante la lectura de datos desde un lector, tiendo a comprobar
reader.IsDbNull(ordinal)
cosas comando (con Nullable<T>
como el ejemplo):
param.Value = when.HasValue ? (object)when.Value : DBNull.Value;
3
Uso DateTime?
Qué problema tiene, específicamente?
- Editar
Sólo así que está claro, eso es un Nullable
objeto DateTime, no una pregunta :)
DateTime? t = null;
- Edit
En respuesta a las observaciones, comprobar que de esta manera:
DateTime? theTime;
if(table["TheColumn"] == DBNull.Value){
theTime = null;
} else {
theTime = (DateTime) table["TheColumn"];
}
Cuestiones relacionadas
- 1. pasar un valor NULL a DateTime campo en LINQ
- 2. Cómo manejar null en xml y C#
- 3. Mejor DateTime? o use el valor predeterminado (DateTime) para NULL?
- 4. Ejecutar un programa Java de nuestro programa Java
- 5. actualización de un campo DateTime en dB de SQL Server de fecha y hora campos
- 6. ¿Qué está causando este comportamiento, en nuestro tipo C# DateTime?
- 7. Campo booleano en mysql db
- 8. Python DB-API: cómo manejar diferentes paramstyles?
- 9. ¿Cómo maneja Mongo DB un campo de matriz grande?
- 10. ¿Cómo se actualiza un campo DateTime en T-SQL?
- 11. MySQL: ¿Cuánto espacio usa un campo NULL?
- 12. ¿Puede un programa C manejar excepciones C++?
- 13. campo Mongodb no null delete
- 14. Crear una tabla db Prácticas recomendadas NULL
- 15. Parte del tiempo de un campo DateTime en SQL
- 16. Actualizar solo la hora en un campo mysql DateTime
- 17. Establezca un campo de base de datos DateTime en "Ahora"
- 18. ¿Cómo se crea un índice en la parte de la fecha del campo DATETIME en MySql
- 19. Mongo DB Borre un campo y un valor
- 20. ¿Puedo insertar una cadena vacía en un campo NOT NULL?
- 21. campo DateTime y Html.TextBoxFor() helper. ¿Cómo usarlo correctamente?
- 22. C# DateTime - ¿Cómo verificar que Time part is NULL?
- 23. Cómo manejar json DateTime devuelto por WCF Data Services (OData)
- 24. ¿Puede LINQ to SQL consultar un campo XML DB-serverside?
- 25. Cómo manejar las interrupciones de conexión Mongoose DB
- 26. Establecer el valor del campo datetime para anular
- 27. ¿Debería uno usar `if ($ a! = NULL)` o `if ($ a! == NULL)` para controlar el flujo del programa?
- 28. Cómo vincular la biblioteca Poco (bibliotecas) a nuestro programa en el entorno Unix
- 29. Cómo convertir DateTime? a DateTime
- 30. Campo de actualización de MySQL IF NULL u otro valor
Mark, muchas gracias. – odiseh