private void LimpiarCampos() { ViewState[_xlsValido] = false; //ViewState[_carga] = TxtServidor.Text = TxtBaseDatos.Text = TxtUsuario.Text = TxtContrasenia.Text = TxtTabla.Text = string.Empty; RgXls.Dispose(); RgXls.Rebind(); //EnableControl(TxtServidor, true); //EnableControl(TxtBaseDatos, true); //EnableControl(TxtUsuario, true); //EnableControl(TxtContrasenia, true); //EnableControl(TxtTabla, true); }
protected void btnVista_Click(object sender, EventArgs e) { DataTable dtPlatilla = new DataTable(); DataTable dtXls = new DataTable(); bool bandera = false; //Limpiar RbtIdentity_CheckedChanged(null, null); dtPlatilla = Session["dtPlantilla"] as DataTable; int IdUsuario = Convert.ToInt32(Session["IdUsuario"]); //Carga el archivo xls en el grid para una vista previa (no lo carga al servidor, solo en temp, la lectura es desde memoria) //Una vez ejecutado este evento el RauXls limpia automaticamente los archivos subidos string mensaje = string.Empty; if (RauXls.UploadedFiles.Count > 0) { //Nombre del archivo string fileName = RauXls.UploadedFiles[0].FileName.ToString(); //Lee el archivo en memoria y lo guarda en un datatable try { using (Stream st = RauXls.UploadedFiles[0].InputStream) { using (IExcelDataReader excelReader = RauXls.UploadedFiles[0].GetExtension().Equals(".xls") ? ExcelReaderFactory.CreateBinaryReader(st) : ExcelReaderFactory.CreateOpenXmlReader(st)) { excelReader.IsFirstRowAsColumnNames = true; DataSet result = excelReader.AsDataSet(true); dtXls = result.Tables[0]; } } } catch (Exception ex) { AlertError("Error al leer el archivo: " + fileName + ".</br>" + excepcion.SerializarExMessage(ex)); return; } foreach (DataColumn colReplace in dtXls.Columns) { colReplace.ColumnName = RemplazarCaracter(colReplace.ColumnName); } if (dtXls.Rows.Count > 0) { if (dtXls.Columns.Count <= dtPlatilla.Columns.Count) { try { foreach (DataRow row in dtXls.Rows) { DataRow newRow = dtPlatilla.NewRow(); bandera = true; foreach (DataColumn col in dtXls.Columns) { newRow[col.ColumnName.Trim()] = row[col.ColumnName.Trim()]; if (dtPlatilla.Columns[col.ColumnName].MaxLength < 0 || dtPlatilla.Columns[col.ColumnName].MaxLength >= row[col.ColumnName].ToString().Length) { if (dtPlatilla.Columns[col.ColumnName].AllowDBNull ? true : row[col.ColumnName].ToString().Trim().Length > 0) { newRow[col.ColumnName] = row[col.ColumnName]; } else { AlertError("La columna " + col.ColumnName + " no acepta campos vacíos."); dtPlatilla.Clear(); bandera = false; break; } } else { AlertError("La columna " + col.ColumnName + " excede el tamaño permitido en la base de datos."); dtPlatilla.Clear(); bandera = false; break; } } if (!bandera) { break; } dtPlatilla.Rows.Add(newRow); } Session["dtXls"] = dtPlatilla; RgXls.DataSource = dtPlatilla; RgXls.Rebind(); AlertSuccess("Archivo Válido."); btnSubirDatos.Attributes.Remove("disabled"); btnSubirDatos.Enabled = true; } catch (Exception ex) { string msg = "El archivo no cuenta con encabezado."; AlertError("Favor de agregar el encabezado al archivo de carga."); excepcion.RegistrarExcepcion(IdUsuario, "btnVista_Click", ex, ref msg); dtPlatilla.Clear(); } } else { AlertError("El archivo seleccionado no conincide con la plantilla."); } } else { AlertError("El archivo " + fileName + " esta vacío."); } } }