none
Error de lectura RRS feed

  • Pregunta

  • Buenas a todos.

    Tengo unos problemas, estoy intentando ingresar datos de Excel (2013) mediante Visual Studio (2015)  a una base de datos SQL Server(2016). Por ahora me da un error que no esta muy bien especificado y no se como proseguir, por lo que me gusstaria seber si alguien me puede ayudar.

    El error es este :

    Me lo da en está linea de código: dr["Fecha"] = Convert.ToDateTime(reader["Fecha"]).Date;


    martes, 19 de septiembre de 2017 17:56

Respuestas

  • Hola:

     Al parecer el reader no contiene una columna con nombre "Fecha", revisa que el nombre sea correcto o que exista.


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Tadeath martes, 19 de septiembre de 2017 21:30
    martes, 19 de septiembre de 2017 18:00

Todas las respuestas

  • Hola:

     Al parecer el reader no contiene una columna con nombre "Fecha", revisa que el nombre sea correcto o que exista.


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Tadeath martes, 19 de septiembre de 2017 21:30
    martes, 19 de septiembre de 2017 18:00
  • A que te refieres con que el reader no contiene una columna con el nombre fecha? 

    Ésto es lo que el reader lee:


    martes, 19 de septiembre de 2017 18:04
  • Buenas,

    Si pones un breakpoint sobre el reader, y vas abriendo desplegables:

    miembros no publicos->resultSet->miembros no publicos->fieldHasCI->

    puedes ver las columnas con sus nombres e indices, revisa que tengas una columna que tenga el nombre "Fecha"

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    martes, 19 de septiembre de 2017 18:46
  • Me explicas como abrir los desplegables porfa
    martes, 19 de septiembre de 2017 19:16
  • A que te refieres con que el reader no contiene una columna con el nombre fecha? 

    Revisa también que el nombre de la columna del Excel  no contenga espacios


    Saludos desde Monterrey, Nuevo León, México!!!

    martes, 19 de septiembre de 2017 19:22
  • Acabo de revisar y no tiene ningún espacio, además el de Fecha no es el único que tiene el inconveniente, también lo tiene Hora, Consumo y Galones; pienso que el problema se deba a conversiones, ya que éstos tienen diferente tipo de conversión que el resto, Galones y Consumo es una conversión a Decimal, y Fecha y Hora tienen una conversión a DateTime.
    martes, 19 de septiembre de 2017 19:36
  • Si estas usando Visual studio y pones un breakpoint,  cuando pasas el ratón por un objeto,  te saca un menú emergente con el contenido del objeto,  lo que te proponía es ir mirando en los menús que te decía,  para llegar a la colección de columnas y ver si tienen nombre o no. 

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    martes, 19 de septiembre de 2017 19:45
  • No crees que sea por posicion comienzas desde el 0 ,1 ,2,3,4,5,6?


    Pasa los puntos prro v:

    martes, 19 de septiembre de 2017 19:46
  • Me habían dicho que era mas recomendable no hacerlo por posiciones sino que por valores.
    martes, 19 de septiembre de 2017 19:51
  • Si lo hago por las posiciones simplemente me da otro tipo de error.
    martes, 19 de septiembre de 2017 19:54
  • Entiendo que la excepción se produce porque la referencia por nombre no logra resolver un valor ordinal válido a razón de que la expresión 'Fecha' no corresponde con una columna del origen.

    Corrobora el nombre de las columnas:

    OleDbDataReader reader = command.ExecuteReader();
    
    MessageBox.Show(String.Join(" ", reader.GetSchemaTable().Rows
    	.Cast<DataRow>().Select(x => $"|{x["columnName"]}|").ToArray()));

    Los nombres de las columnas se muestran enmarcados entre el carácter de barra vertical (pipe |), revisa que no exista caracteres de espacio en blanco posterior al nombre de cada columna.


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    martes, 19 de septiembre de 2017 20:16
  • Resolví el problema. Esté era que debido a que unas de estas columnas se generaron automáticamente mediante la página de Versatec(no se si la reconocen), esto hacia que aunque los nombres fueran iguales, el tipo de caracter era diferente. Lo que hice fue borrar el nombre de las columnas y volverlos a escribir. Gracias por la ayuda de todas formas.
    martes, 19 de septiembre de 2017 21:29