private void ProcesarArchivo() { DataTable tablaErrores = IniciarTablaErrores(); Int32 contador = 0; Int32 contadorOmitidos = 0; Int32 contadorErrores = 0; Int32 contadorIngresados = 0; using (StreamReader archivo = new StreamReader(FileUpload_ArchivoPlano.PostedFile.InputStream)) { String linea; radicacionHojasDeVida _rad = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); while ((linea = archivo.ReadLine()) != null) { contador += 1; String[] campos = linea.Split(';'); DataRow fila; if ((campos.Length < 4) || (campos.Length > 4)) { fila = tablaErrores.NewRow(); fila["CODIGO_ERROR"] = "ERROR_NUM_CAMPOS"; fila["LINEA"] = contador; fila["CAMPO"] = null; fila["DESCRIPCION"] = "El numero de campos de la linea (" + campos.Length.ToString() + ") no corresponde al establecido (4)."; tablaErrores.Rows.Add(fila); contadorErrores += 1; } else { if ((campos[0].ToUpper() != "CC") && (campos[0].ToUpper() != "TI") && (campos[0].ToUpper() != "CE")) { fila = tablaErrores.NewRow(); fila["CODIGO_ERROR"] = "ERROR_TIPO_DOC_IDENTIDAD"; fila["LINEA"] = contador; fila["CAMPO"] = "TIPO_DOCUMENTO_IDENTIDAD"; fila["DESCRIPCION"] = "Solo se admiten los siguientes valores CC - CE - TI - PA"; tablaErrores.Rows.Add(fila); contadorErrores += 1; } else { if (IsNumeric(campos[1]) == false) { fila = tablaErrores.NewRow(); fila["CODIGO_ERROR"] = "ERROR_NON_NUMERIC"; fila["LINEA"] = contador; fila["CAMPO"] = "NUMERO_DOCUMENTO"; fila["DESCRIPCION"] = "Solo se admiten numeros, sin espacios, lineas, puntos y comas."; tablaErrores.Rows.Add(fila); contadorErrores += 1; } else { if (String.IsNullOrEmpty(campos[2]) == true) { fila = tablaErrores.NewRow(); fila["CODIGO_ERROR"] = "ERROR_NULL"; fila["LINEA"] = contador; fila["CAMPO"] = "NOMBRES_ASPIRANTE "; fila["DESCRIPCION"] = "El campos no puede ser nulo o vacio."; tablaErrores.Rows.Add(fila); contadorErrores += 1; } else { if (String.IsNullOrEmpty(campos[3]) == true) { fila = tablaErrores.NewRow(); fila["CODIGO_ERROR"] = "ERROR_NULL"; fila["LINEA"] = contador; fila["CAMPO"] = "APELLIDOS_ASPIRANTE "; fila["DESCRIPCION"] = "El campos no puede ser nulo o vacio."; tablaErrores.Rows.Add(fila); contadorErrores += 1; } else { _rad.MensajeError = null; Int32 contadorRegSol = _rad.ObtenerNumRegSolicitudesPorTipDocAndNumDoc(campos[0], campos[1]); if (contadorRegSol <= 0) { if (_rad.MensajeError != null) { fila = tablaErrores.NewRow(); fila["CODIGO_ERROR"] = "ERROR_BD"; fila["LINEA"] = contador; fila["CAMPO"] = null; fila["DESCRIPCION"] = "Eror en Base de datos al intentar consultar si el registro ya se encuentra: " + _rad.MensajeError; tablaErrores.Rows.Add(fila); contadorErrores += 1; } else { if (_rad.AdicionarRegistroRegSolicitudIngresoMasivo(campos[3], campos[2], campos[0], campos[1]) <= 0) { fila = tablaErrores.NewRow(); fila["CODIGO_ERROR"] = "ERROR_BD"; fila["LINEA"] = contador; fila["CAMPO"] = null; fila["DESCRIPCION"] = "Eror en Base de datos al intentar ingresar el registro del aspirante: " + _rad.MensajeError; tablaErrores.Rows.Add(fila); contadorErrores += 1; } else { contadorIngresados += 1; } } } else { contadorOmitidos += 1; } } } } } } } } Label_TotalRegistroProcesados.Text = contador.ToString(); Label_RegistrosErroneos.Text = contadorErrores.ToString(); Label_RegistrosInsertados.Text = contadorIngresados.ToString(); Label_RegistrosOmitidos.Text = contadorOmitidos.ToString(); GridView_ResultadosCargue.DataSource = tablaErrores; GridView_ResultadosCargue.DataBind(); Ocultar(Acciones.Resultados); Mostrar(Acciones.Resultados); Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El archivo fue procesado, por favor verifique la información en la sección de Resultados del Cargue.", Proceso.Correcto); }