none
No se puede reconocer la cadena como valor DateTime válido.

    Question

  • Que tal estoy haciendo algo un poco sencillo pero me sucede algo raro.

    Tengo un label en el cuál quiero mostrar la fecha que obtengo del servidor, si a ese lable le pongo por default algo asi 01/10/2010

    no me da problemas pero no me muestra la fecha sino que se queda con ese texto por default. y si le quito ese texto para que me muestre en realidad lo que yo quiero me da el error del título de este post.

    Esto es lo que tengo:

    private void LoadDate()
            {
                DateTime Fecha = Convert.ToDateTime(lblFechaRequisicion.Text);
                string sql = "select sysdate from dual";
                OracleConnection cnn = new OracleConnection(orast);
                OracleCommand cmd = new OracleCommand(sql, cnn);
                cnn.Open();
                OracleDataReader oradr = cmd.ExecuteReader();
                if (oradr.Read())
                {             
                  Fecha.ToShortDateString();
                  Fecha = oradr.GetDateTime(0);
                }
                cnn.Close();

    Solo quiero que me muestre algo así 19/11/2010 que en realidad si ejecuto esa consulta en oracle es lo que me devuelve.

    Gracias


    Renato Díaz Nayarit, México
    Friday, November 19, 2010 7:08 PM

Answers

  • hola

    el error no lo estara dando en este linea

    DateTime Fecha = Convert.ToDateTime(lblFechaRequisicion.Text);

    es que si el texto del label esta vacio entonces esa linea falla

    ademas cual seria el objetivo de esta linea

    Fecha.ToShortDateString(); no se asigna a nadie el valor

     

    prueba algo como esto

    DateTime Fecha;

    using(OracleConnection cnn = new OracleConnection(orast))
    {
        cnn.Open();
       
        string sql = "select sysdate from dual";
        OracleCommand cmd = new OracleCommand(sql, cnn);
       
        string _fecha = Convert.ToString(cmd.ExecuteScalar());
       
        DateTime.TryParse( _fecha, out Fecha);
    }

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by Crack it Friday, November 19, 2010 7:48 PM
    Friday, November 19, 2010 7:35 PM

All replies

  • hola

    el error no lo estara dando en este linea

    DateTime Fecha = Convert.ToDateTime(lblFechaRequisicion.Text);

    es que si el texto del label esta vacio entonces esa linea falla

    ademas cual seria el objetivo de esta linea

    Fecha.ToShortDateString(); no se asigna a nadie el valor

     

    prueba algo como esto

    DateTime Fecha;

    using(OracleConnection cnn = new OracleConnection(orast))
    {
        cnn.Open();
       
        string sql = "select sysdate from dual";
        OracleCommand cmd = new OracleCommand(sql, cnn);
       
        string _fecha = Convert.ToString(cmd.ExecuteScalar());
       
        DateTime.TryParse( _fecha, out Fecha);
    }

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by Crack it Friday, November 19, 2010 7:48 PM
    Friday, November 19, 2010 7:35 PM
  • Gracias maestro la verdad que operaciones sencillas para gente como yo, pero cada vez sé un poco más.

    Muchas gracias !


    Renato Díaz Nayarit, México
    Friday, November 19, 2010 7:49 PM
  • Hola que tal, que te devuelve el Servidor? osea en qué formato?, el sysdate devuelve la fecha con la hora, de repente, la forma en como lo estás recibiendo del servidor no es compatible con el formato del Date Time.

    Te comento que probé lo siguiente:

    string lcSQl = "Select sysdate from dual";
    OracleCommand cmd = new OracleCommand();
    cmd.CommandText = lcSQl;
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.Connection=cn;
    OracleDataReader dr=cmd.ExecuteReader();
    dr.Read();
    DateTime dt=Convert.ToDateTime(dr[1].ToString());
    

    y funciona bien...

    Si no te funciona bien, tendrías que revisar la configuracion NLS del servidor a ver como te esta devolviendo las fechas.


    Jackson Rosado Developer c#, VFP, PL/SQL DBA - Oracle 10g
    Friday, November 19, 2010 8:12 PM
  • Que tal jack en realidad si la consulta la ejecuto con el sql developer me devuelve solo 19/11/10. Pero en mi form me retorna: 19/11/2010 12:45:12

    pero le quito lo que no me sirve con :

    lblFechaRequisicion.Text = exFecha.Substring(0,10);//así solo me queda 19/11/2010 que es lo que ocupo

    Gracias !


    Renato Díaz Nayarit, México
    Friday, November 19, 2010 8:21 PM