public void grabar(List <Models.SubareaPreventa> lstSubareas)
        {
            Guid methodOwnerID = new Guid("8bf259c7-135e-4a96-8703-9da7e697a68d");

            OpenDbConn();

            if (cDblib.Transaction.ownerID.Equals(new Guid()))
            {
                cDblib.beginTransaction(methodOwnerID);
            }

            try
            {
                DAL.SubareaPreventa cSubAreaPreventa = new DAL.SubareaPreventa(cDblib);

                string cadenaFicepis           = "";
                int    ta201_idsubareapreventa = 0;

                for (int i = 0; i < lstSubareas.Count; i++)
                {
                    DataTable dtTablappl = null;
                    dtTablappl = new DataTable();
                    dtTablappl.Columns.Add(new DataColumn("col_1", typeof(int)));

                    ta201_idsubareapreventa = lstSubareas[i].ta201_idsubareapreventa;
                    cadenaFicepis           = lstSubareas[i].profesionales;
                    //Recorremos la lista
                    string[] ficepis = Regex.Split(cadenaFicepis, "@#@");


                    //tratamos los profesionales
                    for (int j = 0; j < ficepis.Length; j++)
                    {
                        if (ficepis[j] != "")
                        {
                            DataRow row = dtTablappl.NewRow();
                            row["col_1"] = int.Parse(ficepis[j]);
                            dtTablappl.Rows.Add(row);
                        }
                    }

                    cSubAreaPreventa.grabarppldesubarea(ta201_idsubareapreventa, dtTablappl);
                    //dtTablappl.Clear();
                }

                //Finalizar transacción
                if (cDblib.Transaction.ownerID.Equals(methodOwnerID))
                {
                    cDblib.commitTransaction(methodOwnerID);
                }
            }
            catch (Exception ex)
            {
                //rollback
                if (cDblib.Transaction.ownerID.Equals(methodOwnerID))
                {
                    cDblib.rollbackTransaction(methodOwnerID);
                }

                throw ex;
            }
        }