private void btnTransferir_Click(object sender, EventArgs e)
        {
            IDbTransaction Transaccion = null;
            try
            {
                string sConnectionString = string.Format(@"metadata=res://*/Entity.SeguimientoEtiquetas.csdl|
                                                                res://*/Entity.SeguimientoEtiquetas.ssdl|
                                                                res://*/Entity.SeguimientoEtiquetas.msl;
                                                      provider=MySql.Data.MySqlClient;
                                    provider connection string=';server={0}
                                                                ;user id={1}
                                                                ;password={2}
                                                                ;database={3}
                                                                ;port={4}'"
                                                                , Properties.Settings.Default.Servidor
                                                                , Properties.Settings.Default.Usuario
                                                                , Properties.Settings.Default.Contraseña
                                                                , Properties.Settings.Default.BaseDeDatos
                                                                , Properties.Settings.Default.Puerto);
                EtiquetasEntities Contexto = new EtiquetasEntities(sConnectionString);

                Contexto.Connection.Open();
                Transaccion = Contexto.Connection.BeginTransaction();
                Transferir(Contexto);

                Transaccion.Commit();

                MessageBox.Show("Transferencia realizada con éxito!!!" + Environment.NewLine +
                                string.Format("Se transfirieron {0} etiquetas.", lstEtiquetas.Count),
                                "OK", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                if (Transaccion != null)
                {
                    // ***** La transacción se creó
                    Transaccion.Rollback();

                    if (ex.InnerException != null)
                    {
                        Type tipoExcepcion = typeof(MySql.Data.MySqlClient.MySqlException);
                        if (ex.InnerException.GetType() == tipoExcepcion)
                        {
                            //Es una Excepcion del tipo MySql
                            var myEx = (MySql.Data.MySqlClient.MySqlException)ex.InnerException;

                            switch (myEx.Number)
                            {
                                case 1452:
                                    MessageBox.Show(string.Format("No se encontró el artículo con clave [ {0} ]."+Environment.NewLine+
                                                                  "Asegúrese de que el articulo esta dado de alta en el sistema.", sErrorClaveArticulo),
                                                                  "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                case 1062:
                                    MessageBox.Show(string.Format("La etiqueta [ {0} ] ya se encuentra en el sistema." + Environment.NewLine +
                                                                  "No se pueden duplicar las etiquetas...", sErrorNumeroEtiqueta),
                                                                  "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                            }
                        }
                        else
                        {
                            MessageBox.Show(ex.InnerException.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    // ***** La transacción no se creó
                    if (ex.InnerException != null)
                    {
                        Type tipoExcepcion = typeof(MySql.Data.MySqlClient.MySqlException);

                        if (ex.InnerException.GetType() == tipoExcepcion)
                        {
                            //Es una Excepcion del tipo MySql
                            var myEx = (MySql.Data.MySqlClient.MySqlException)ex.InnerException;

                            switch (myEx.Number)
                            {
                                case 0:
                                    MessageBox.Show("No se puede conectar con el servidor, revise su conexión...", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                                case 1042:
                                    MessageBox.Show("No se puede conectar con el servidor, revise su conexión...", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    break;
                            }
                        }
                        else
                        {
                            MessageBox.Show(ex.InnerException.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }
 private void Inicializar()
 {
     string sConnectionString = string.Format(@"metadata=res://*/Entity.SeguimientoEtiquetas.csdl|
                                                         res://*/Entity.SeguimientoEtiquetas.ssdl|
                                                         res://*/Entity.SeguimientoEtiquetas.msl;
                                               provider=MySql.Data.MySqlClient;
                             provider connection string=';server={0}
                                                         ;user id={1}
                                                         ;password={2}
                                                         ;database={3}
                                                         ;port={4}'"
                                                         ,Properties.Settings.Default.Servidor
                                                         ,Properties.Settings.Default.Usuario
                                                         ,Properties.Settings.Default.Contraseña
                                                         ,Properties.Settings.Default.BaseDeDatos
                                                         ,Properties.Settings.Default.Puerto);
     EtiquetasEntities Contexto = new EtiquetasEntities(sConnectionString);
     lstUsuarios = Contexto.usuarios.Where(o => o.estado == true).ToList();
 }
        private void Transferir(EtiquetasEntities Contexto)
        {
            etiquetas etiqueta_sistema;
            foreach (WS_Friolala.EtiquetasGrid etiqueta in lstEtiquetas)
            {
                sErrorNumeroEtiqueta = etiqueta.NumeroDeEtiqueta;
                sErrorClaveArticulo = etiqueta.Clave;

                etiqueta_sistema = new etiquetas();
                etiqueta_sistema.numero_etiqueta = etiqueta.NumeroDeEtiqueta;
                etiqueta_sistema.tipo_etiqueta = "R";
                etiqueta_sistema.clave_articulo = etiqueta.Clave;
                etiqueta_sistema.fecha_empaque = etiqueta.FechaDeEmpaque;
                etiqueta_sistema.fecha_caducidad = etiqueta.FechaDeCaducidad;
                etiqueta_sistema.id_bodega = lstBodegasArticulos.FirstOrDefault(o => o.clave == etiqueta.Clave).id_bodega;
                etiqueta_sistema.id_usuario = this.user.id_usuario;
                etiqueta_sistema.cantidad = etiqueta.Cantidad;
                etiqueta_sistema.unidad = etiqueta.Unidad;
                etiqueta_sistema.piezas = etiqueta.Piezas;
                etiqueta_sistema.fecha_recepcion = DateTime.Today;
                etiqueta_sistema.estatus = "A";

                Contexto.etiquetas.AddObject(etiqueta_sistema);
                Contexto.SaveChanges();
            }
        }