none
Problema con DateTimePicker y propiedad DataBindings. RRS feed

  • Pregunta

  • Hola a todos(as).

    Tengo un datetimepicker enlazado a una clase que contiene una propiedad de tipo DateTime, lo enlazo a traves de un BindingSource.

    BindingSource source = this.miclase; 
    this.dateTimePicker1.DataBindings.Add(new Binding("Value", source, "PropiedadMiClase"));
    
    

    Pero me lanza la siguiente excepcion.

    El valor de '01-01-0001 0:00:00' no es válido para 'Value'. 'Value' debería estar entre 'MinDate' y 'MaxDate'.
    Nombre del parámetro: Value

    Que estaré haciendo mal.

    Espero que me puedan ayudar.

    Gracias y Saludos.

    martes, 9 de noviembre de 2010 3:08

Respuestas

  • hola

    segun veo no tienes una fecha asignada a la propiedad de la instancia de la clase cuando bindeas los controles

    el control DateTimePicker tiene un limite en el rango de fecha que puede representar, valida als propeidade MinDate y MaxDate del Datetimepicker

    en este caso deberias aplciar un cancepto similar a este

    WinForms - DataBinding DateTimePicker to a Nullable Type

    no digo que sea exatamente igual, pero si que asignes el evento Parse, para que alli valides si la fecha de la propeidad es menor el valor de MinDate del control, si lo es asignes una fecha por defecto, por ahi la fecha del dia

     

    sino una mas simple es validar que la instancia tenga una fecha valida asignada, por ahi en el constructor de la clase podrias definir uan por defecto

    public class ClassTest{ 

       public ClassTest{

           this.PropiedadMiClase = Datetime.Now; //por defecto asigno un valor cuando se crea la instancia

       }

      .

      .

    }

     

    despues desde tu aplciacion seguro cambie el valor, epro sino lo ahce al menso queda un valor corrercto que bindear

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta el oberto martes, 23 de noviembre de 2010 3:04
    martes, 9 de noviembre de 2010 3:20

Todas las respuestas

  • hola

    segun veo no tienes una fecha asignada a la propiedad de la instancia de la clase cuando bindeas los controles

    el control DateTimePicker tiene un limite en el rango de fecha que puede representar, valida als propeidade MinDate y MaxDate del Datetimepicker

    en este caso deberias aplciar un cancepto similar a este

    WinForms - DataBinding DateTimePicker to a Nullable Type

    no digo que sea exatamente igual, pero si que asignes el evento Parse, para que alli valides si la fecha de la propeidad es menor el valor de MinDate del control, si lo es asignes una fecha por defecto, por ahi la fecha del dia

     

    sino una mas simple es validar que la instancia tenga una fecha valida asignada, por ahi en el constructor de la clase podrias definir uan por defecto

    public class ClassTest{ 

       public ClassTest{

           this.PropiedadMiClase = Datetime.Now; //por defecto asigno un valor cuando se crea la instancia

       }

      .

      .

    }

     

    despues desde tu aplciacion seguro cambie el valor, epro sino lo ahce al menso queda un valor corrercto que bindear

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta el oberto martes, 23 de noviembre de 2010 3:04
    martes, 9 de noviembre de 2010 3:20
  • Hola El Oberto! el problema que tienes es que en la base de datos el valor del campo datetime es null, por eso te trae 01/01/0001 00:00:00, y no deberia tener este valor

    en tu base de datos colocale al campo que relaciones el valor "no null", entonces siempre el campo que vayas a traer va a tener una fecha valida, es posible que hayas cargado algo de tu clase (un cliente, un producto, etc) y en ese campo no tenga nada, por lo que seria recomendable que (en caso de que ocupes este campo para colocar por ejemplo la fecha de inhabilitacion) tengas una fecha "bandera", entonces colocas que si es por ejemplo 01/01/1800 siga siendo valido.

    Esperamos tus comentarios!

     



    Cuando alguien conteste a tu pregunta, si la información te resulto Útil Votala o marcarla como respuesta

    Victoria Rodriguez

    Raona - Software Engineer

    Mi BLog
    lunes, 22 de noviembre de 2010 21:27