Buenas,
Perdonarme la insistencia con el tema del código, pero creo que es la solución mas elegante, ya que estar con un sistema de reintentos poco "solido" es jugarsela mucho en un entorno productivo. Para que te sea mas facil, te paso un fragmento de código rapido:
Primeramente te vas a tener que instalar el componte de conexiónes que proporciona Microsoft en su página oficial:
https://www.microsoft.com/es-es/download/confirmation.aspx?id=13255Seguidamente, en un objeto nuevo que crees, tienes que:
- añadir la referencia a la DLL System.Data.OleDb.dll
- añadir el espacio de nombres System.Data.OleDb (el de la libreria)
- despues añade en un fragmento de codigo lo siguiente:
Como valores de entrada; el fichero Excel y el nombre de la hoja
Y el codigo es el siguiente
OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strExcelFile + ";");
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "SELECT * FROM " + strNombreHoja;
DataTable dt = new DataTable();
dt.Load(command.ExecuteReader());
Result = dt;
Esto te devuelve una collection que tienes que almacenar como valor de salida. Creala conforme venga tu Excel.
Un saludo,
------------------------------
Pablo Sarabia
Programmer
Altamira AM
------------------------------