private string Grabar(string sPSN, string strMeses) { string sResul = "OK@#@"; #region abrir conexión y transacción serializable try { oConn = Conexion.Abrir(); //tr = Conexion.AbrirTransaccion(oConn); tr = Conexion.AbrirTransaccionSerializable(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 try { bool bContinuar = true; string[] aMes = Regex.Split(strMeses, "///"); foreach (string oMes in aMes) { if (bContinuar) { string[] aValores = Regex.Split(oMes, "##"); switch (aValores[0]) { case "U": SEGMESPROYECTOSUBNODO.UpdateEstado(tr, int.Parse(aValores[1]), aValores[2]); break; } } } Conexion.CommitTransaccion(tr); } catch (Exception ex) { Conexion.CerrarTransaccion(tr); //Master.sErrores = Errores.mostrarError("Error al eliminar el proyecto económico " + sNumPE, ex); sResul = "error@#@Error al actualizar el estado del mes del proyecto económico.\n\n" + ex.Message; } finally { Conexion.Cerrar(oConn); } return(sResul); }