protected string Grabar(string strDatos) { string sResul = ""; 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); } try { string[] aMoneda = Regex.Split(strDatos, "///"); foreach (string oMoneda in aMoneda) { if (oMoneda == "") { continue; } string[] aValores = Regex.Split(oMoneda, "##"); //0. Opcion BD. "D" //1. ID Moneda //2. Denominación importes //3. Cambio actual //4. Cambio siguiente //5. A partir de //6. Gestión - estado //7. Visibilidad - estado switch (aValores[0]) { case "U": MONEDA.Update(tr, aValores[1], "", (aValores[6] == "1") ? true : false, (aValores[3] == "") ? null : (decimal?)decimal.Parse(aValores[3]), (aValores[4] == "") ? null : (decimal?)decimal.Parse(aValores[4]), (aValores[5] == "") ? null : (int?)int.Parse(aValores[5]), Utilidades.unescape(aValores[2]), (aValores[7] == "1") ? true : false); break; } } Conexion.CommitTransaccion(tr); sResul = "OK@#@"; if (HttpContext.Current.Cache["Lista_Monedas"] != null) { HttpContext.Current.Cache.Remove("Lista_Monedas"); } } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar las monedas.", ex) + "@#@"; } finally { Conexion.Cerrar(oConn); } return(sResul); }