Busca lo que quieras

Una opción para manejar DateTime "nulos" en c#

A veces necesitamos manejar Datetime NULOS.

Pero por cosas de la vida, nuestro codigo todo esta lleno de DateTime... así que nos parece complicado manejar el tipo de dato DateTime?, que permite nulos por defecto. Hacer ese cambio nos da pereza... además de que podría traer algunos inconvenientes al algún tipo servicio o lo que sea.

Así para mi la mejor opción fue manejar el "NULO" que no es NULO....

Un DateTime cuando se crea deja por defecto una fecha, esta es:

01/01/0001 12:00:00 a.m.

Eso quiere decir que podríamos interpretar ese valor como el NULO.

¿Y como lo vamos a comparar?
Podremos en ese caso utilizar la siguiente validación que me parece bastante leíble por cualquier programador.

if (miObjetoDateTime != default(DateTime))
{
}

¿Y para los procedimientos almacenados como le envío el nulo? Porque verdaderamente hay si queremos enviarle un NULO de verdad.

Sería hacer la siguiente instrucción:

if (miObjetoDateTime != default(DateTime))
                this._sqlDatabase.AddInParameter(command, "parametrofechaquizasnula", DbType.DateTime, miObjetoDateTime);

            else

                this._sqlDatabase.AddInParameter(command, "parametrofechaquizasnula", DbType.DateTime, DBNull.Value);

Bueno, pues quizás sea la que a mi gusto más se me ajusta a mis necesidades.

Espero les sirva.

Sean felices! :) Y siéntanse libres de opinar ;)

No hay comentarios:

Publicar un comentario

Palabras Clave

.NET (93) AJAX (2) ajaxcontroltoolkit (2) Algoritmos (1) android (1) Angular (1) Arrays (1) AS2 o ActionScript 2.0 (1) AS3 o ActionScript 3.0 (64) ASP (7) ASP.NET (3) Azure (1) Azure DevOps (2) Backup (2) Batch (4) blogger (1) Browser Support (2) C# (53) Charts (1) Chorme extensions (1) Chrome (3) cmd (18) código postal (1) Colombia tips (1) command (1) Conexion remota (1) Controles Web .NET (24) Cookies (1) cordova (1) CSS (14) CSV (5) Cufon (1) DateTime (2) deployment (2) Desarrollo movil (2) Desarrollo web (5) Diseño (4) DNN o DotNetNuke (5) docker (1) Encuestas (1) Entity Framework (1) Error (1) Eval (2) Excel (4) Expresiones regulares (2) Facebook (14) fechas (1) Fiddler (1) FileUpload (1) Filezilla (1) Firefox (2) Flash (9) Fonts (3) FQL (1) frameworks (2) Futuro de la web (1) git (1) Google Code (13) Google Maps (4) hackintosh (3) hazard 10.6.2 (3) herramientas para developers (1) highchart (1) Hilos (2) Hosting Windows (18) HTML (38) HTML5 (6) IDE (1) IE (2) IE9 (1) IIS (13) imagenes (3) jasmine (2) java (1) jqgrid (2) Jquery y Javascript (90) jquery-ui (5) jQueryMobile (1) JSON (1) knockout (4) library (1) Link Interesantes (2) List (1) Macro (2) Matemáticas (2) Membership (6) Memoria (1) Mis Experiencias (3) momentjs (1) ms-dos (1) MSN (1) MVC (1) MVC4 (3) MySQL (2) node.js (4) Notepad++ (3) Notificaciones (1) ObjectDataSource (2) Online (2) Opinión (4) OSX (3) Parallels Plesk Panel (1) petapoco (1) PhantomJS (1) PHP (4) Porqué este blog (1) Powershell (1) Razor (3) Redes (2) REGEX (4) REST (1) SDK Android (1) Seguridad (1) SelectParameters (1) Selenium (2) sencha (3) sencha cmd (2) SEO (1) SMTP (2) Software útil (8) Solución (1) Soporte (1) SQL (15) SQL Server (58) SQLite (2) Store Procedures (20) String (5) Testing Code (2) texto (2) tips de datos (1) tips de desarrollo (1) TutoFaceAS3 (4) TutoProAS3 (4) Tutoriales (7) Tweenlite effects (3) Últimas noticias (1) unit testing (1) usb (1) VBA (1) Video (1) virus (1) Web API (2) Web Browsers (1) Web Forms (7) web.config (1) Webmaster (8) Webmatrix (1) webrole (1) webservices (1) webstorm (1) Win Forms (5) Windows (21) Windows 7 (1) Windows 8 (1) XML (2) Youtube API (2)