private string Grabar(string sCR, string sCadena) {//En el parametro de entrada tenemos una lista de codigos de personas separados por comas string sResul = ""; int iCodCR; SqlConnection oConn = null; SqlTransaction tr = null; try { iCodCR = int.Parse(sCR); oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); if (sCadena != "") {//Con la cadena generamos una lista y la recorremos para grabar cada elemento string[] aFun = Regex.Split(sCadena, "///"); foreach (string oFun in aFun) { string[] aValores = Regex.Split(oFun, "##"); switch (aValores[0]) { case "I": OfiTec.InsertarIntegrante(tr, iCodCR, int.Parse(aValores[1])); break; case "D": OfiTec.BorrarIntegrante(tr, iCodCR, int.Parse(aValores[1])); break; } } } Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar la lista de integrantes", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }