Recuperar un valor de fecha/hora de una base de datos de Microsoft Access

Tengo un método que recupera todos los datos de una columna específica en una tabla. Ahora bien, este método funciona cuando los campos están en formato "cadena" o "int" (cambiando a GetInt32) en la base de datos, aunque no le gustan los campos de fecha, mi método es el siguiente:

public static void getDates()
{
    //create the database connection
    OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\ev_mgr.mdb");

    //create the command object and store the sql query
    OleDbCommand actorCommand = new OleDbCommand("select Issue_Time2 from Events", aConnection);
    try
    {
        aConnection.Open();

        //create the datareader object to connect to table
        OleDbDataReader aReader = actorCommand.ExecuteReader();

        //Iterate throuth the database
        while (aReader.Read())
        {
            timeList.Add(aReader.GetString(0)); // Error occurs here

        }

        //close the reader
        aReader.Close();

        //close the connection Its important.
        aConnection.Close();
    }

    //Some usual exception handling
    catch (OleDbException e)
    {
        Console.WriteLine("Error: {0}", e.Errors[0].Message);
    }


    foreach (string time in timeList)
    {
        Console.WriteLine(time);
    }
}

Se lanza una excepción en esta línea:

timeList.Add(aReader.GetString(0));

Error:

El elenco especificado no es válido.

Un ejemplo de una fecha/campo en la columna es:

02/05/2012 15:52:45

preguntado el 03 de mayo de 12 a las 12:05

2 Respuestas

tratan

timeList.Add(aReader.GetDateTime(0).ToString());

contestado el 03 de mayo de 12 a las 12:05

Se supone que debe estar allí. [Microsoft dice eso][1] [1]:msdn.microsoft.com/en-us/library/… - bitoshi.n

Gracias, pasé por alto algo, funciona muy bien, ¡gracias! - james teare

Utiliza

timeList.Add(DateTime.Parse(aReader.GetString(0)).ToString(yourdateformat));

donde puede estar tu formato de fecha "dd/mm/yyyy hh:MM:ss" o lo que quieras

contestado el 03 de mayo de 12 a las 12:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.