Lo primero será arrastrar un elemento de tipo FileUpload, uno de tipo Button y otro de tipo Label para ahí colocar cualquier mensaje que pueda presentarnos nuestra Webform.
Dentro del evento Click de nuestro botón vamos a poner el siguiente código:
try
{if (FileUpload1.HasFile)
{
FileInfo info = new FileInfo(FileUpload1.PostedFile.FileName); // System.IO
if (info.Extension.ToString() != ".xls")
{
Label10.Text = "El archivo Seleccionado no es correcto";
}
else
{
///// CargaExcel es la tabla donde se almacenaran los datos que se van a cargar en nuestra base de datos
AdminCargaExcel Administra = new AdminCargaExcel();
CargaExcel Datos = new CargaExcel();
FileUpload1.SaveAs(@"C:\temp\" + FileUpload1.FileName);
string CadenaConexion = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=C:\\temp\\"+FileUpload1.FileName+
";Extended Properties=\"Excel 8.0;HDR=NO\"";
OleDbConnection con = new OleDbConnection(CadenaConexion);
string strSQL = "SELECT * FROM [Hoja1$]";
OleDbDataAdapter da = new OleDbDataAdapter(strSQL, con);
DataSet ds = new DataSet();
da.Fill(ds);
try
{
if (ds.Tables.Count > 0)
foreach (DataRow row in ds.Tables[0].Rows)
{Datos.DatoCargado = Convert.ToString(row[0].ToString().ToUpper());
Administra.Guardar(Datos);
}
}
catch (Exception ex)
{
Label10.Text = ex.Message;
}
}
}
else
{
Label10.Text
= "NO CARGO EL ARCHIVO";}
}
catch (Exception ex)
{
Label10.Text = ex.Message;
}
Ese será el código que necesitaremos, con esto se hace la carga. Aquí esta el archivo Excel
Le doy click a examinar
Selecciono el archivo y le doy click al botón
Y listo, ya se hizo la carga en la base de datos
En modo desarrollo todo jalaba de maravilla, seleccionaba el archivo, hacia las validaciones y cargaba la información, ya era momento de ponerlo en producción, y ZAZ!!!
"El proveedor 'Microsoft.Jet.OLEDB.4.0' no está registrado en el equipo local."
Algo que no me esperaba y entré un poco en pánico, pensé que seria necesario instalar algo, busqué en algunos foros y leía que tenia que instalar "AccessDatabaseEngine", yo no quería instalar nada en nuestro servidor, eso no estaba en los planes, pero hubo una luz al final del túnel y aparecía ante mi la respuesta, todo estaba en el Administrador del IIS.
Dentro del Administrador del IIS, en "Conexiones", seleccionamos "Grupo de aplicaciones"
Seleccionamos el grupo de aplicaciones al cual pertenece nuestra aplicación, en mi caso es "DefaultAppPool", le damos un click derecho y nos vamos a "Configuración Avanzada..."
Ahí nos mostrará la siguiente pantalla
Y lo único que hay que hacer es, en la parte de "(General)", ubicamos "Habilitar aplicaciones de 32 bits" y modificamos de "False" a "True"
LISTO!!!! con esto quedará resuelto este pequeño inconveniente!!!
Espero y les sirva de algo mi experiencia, les dejo a su disposición mi correo para cualquier duda, aclaración o sugerencia, ricegamo@hotmail.com
Saludos
No hay comentarios:
Publicar un comentario