private void CargarDataEco() { StringBuilder sb = new StringBuilder(); #region Obtenión de dataset con empresas, proyectos y clientes y creación de HASTABLES oProyectoSubNodo = null; oClaseEconomica = null; oProveedor = null; DataSet ds = AddDATAECO.ValidarTabla(); htProyectoSubNodo = new Hashtable(); foreach (DataRow dsProyectoSubNodo in ds.Tables[0].Rows)//Recorro tabla de proyectos-subnodos { htProyectoSubNodo.Add(dsProyectoSubNodo["t301_idproyecto"].ToString() + @"/" + dsProyectoSubNodo["t303_idnodo"].ToString(), new ProyectoSubNodo((int)dsProyectoSubNodo["t301_idproyecto"], (int)dsProyectoSubNodo["t305_idproyectosubnodo"], (int)dsProyectoSubNodo["t303_idnodo"], dsProyectoSubNodo["t305_cualidad"].ToString()) ); } htClaseEconomica = new Hashtable(); foreach (DataRow dsClaseEconomica in ds.Tables[1].Rows)//Recorro tabla de Clases económicas { htClaseEconomica.Add(dsClaseEconomica["t329_idclaseeco"].ToString(), new ClaseEconomica((int)dsClaseEconomica["t329_idclaseeco"], dsClaseEconomica["t329_necesidad"].ToString(), bool.Parse(dsClaseEconomica["t329_visiblecarruselC"].ToString()), bool.Parse(dsClaseEconomica["t329_visiblecarruselJ"].ToString()), bool.Parse(dsClaseEconomica["t329_visiblecarruselP"].ToString())) ); } htProveedor = new Hashtable(); foreach (DataRow dsProveedor in ds.Tables[2].Rows) //Recorro tabla de proveedores { htProveedor.Add(dsProveedor["t315_codigoexterno"].ToString(), new Proveedor((int)dsProveedor["t315_idproveedor"], dsProveedor["t315_codigoexterno"].ToString()) ); } ds.Dispose(); #endregion // Lectura, validación y conteo, de las filas de la tabla SqlDataReader dr = AddDATAECO.Catalogo(); while (dr.Read()) { iCont++; if (validarCampos(dr)) { iNumOk++; } } dr.Close(); dr.Dispose(); sb.Append("</table>"); this.divB.InnerHtml = cabErrores() + sbE + "</table>"; cldTotalLin.InnerText = AddDATAECO.numFilas(null).ToString("##,###,##0"); cldLinOK.InnerText = iNumOk.ToString("##,###,##0"); cldLinErr.InnerText = (iCont - iNumOk).ToString("##,###,##0"); }
private string Procesar() { string sResul = ""; int iNumLin = 1; try { oProyectoSubNodo = null; DataSet ds = AddDATAECO.ValidarTabla(); htProyectoSubNodo = new Hashtable(); foreach (DataRow dsProyectoSubNodo in ds.Tables[0].Rows) //Recorro tabla de proyectos-subnodos { htProyectoSubNodo.Add(dsProyectoSubNodo["t301_idproyecto"].ToString() + @"/" + dsProyectoSubNodo["t303_idnodo"].ToString(), new ProyectoSubNodo((int)dsProyectoSubNodo["t301_idproyecto"], (int)dsProyectoSubNodo["t305_idproyectosubnodo"], (int)dsProyectoSubNodo["t303_idnodo"], dsProyectoSubNodo["t305_cualidad"].ToString() ) ); } #region Abro transaccion try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion string sEstadoMes = ""; int nSegMesProy = 0; SqlDataReader dr = AddDATAECO.Catalogo(); while (dr.Read()) { oProyectoSubNodo = (ProyectoSubNodo)htProyectoSubNodo[dr["t301_idproyecto"].ToString() + "/" + dr["t303_idnodo"].ToString()]; if (oProyectoSubNodo != null) { nSegMesProy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)dr["t325_anomes"]); if (nSegMesProy == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)dr["t325_anomes"]); nSegMesProy = SEGMESPROYECTOSUBNODO.Insert(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)dr["t325_anomes"], sEstadoMes, 0, 0, false, 0, 0); } int?iNodoDestino = null; if (dr["t303_idnodo_destino"] != DBNull.Value) { iNodoDestino = (int)dr["t303_idnodo_destino"]; } int?iProvedor = null; if (dr["t315_idproveedor"] != DBNull.Value) { iProvedor = (int)dr["t315_idproveedor"]; } DATOECO.Insert(tr, nSegMesProy, (int)dr["t329_idclaseeco"], dr["t376_motivo"].ToString(), (decimal)dr["t376_importe"], iNodoDestino, iProvedor, Constantes.FicheroDatos); } else { string sMsg = "No existe un proyectosubnodo correspondiente al proyecto " + dr["t301_idproyecto"].ToString() + " y al " + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + " " + dr["t303_idnodo"].ToString() + "."; dr.Close(); dr.Dispose(); throw new Exception(sMsg); } iNumLin++; } dr.Close(); dr.Dispose(); sResul = "OK@#@"; Conexion.CommitTransaccion(tr); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al procesar el fichero en la línea " + iNumLin.ToString(), ex); Conexion.CerrarTransaccion(tr); } finally { Conexion.Cerrar(oConn); } return(sResul); }