Beispiel #1
0
        private void Comparar()
        {
            var mySqlDataTable = new DataTable();
            var visualFoxProDataTable = new DataTable();
            mySqlDataTable = _vfp2mysql.Select(2);
            visualFoxProDataTable = _vfp2mysql.SelectVfp(1);

            var matched =
                visualFoxProDataTable.AsEnumerable()
                    .Join(mySqlDataTable.AsEnumerable(), table1 => table1.Field<string>("emplnum").PadLeft(5, '0'),
                        table2 => table2.Field<string>("id_empleado").PadLeft(5, '0'),
                        (table1, table2) => new { table1, table2 })
                    .Where(
                        @t =>
                            @t.table1.Field<string>("nombre").Trim() == @t.table2.Field<string>("nombre") &&
                            @t.table1.Field<string>("apellido1").Trim() == @t.table2.Field<string>("paterno") &&
                            @t.table1.Field<string>("apellido2").Trim() == @t.table2.Field<string>("materno") &&
                            @t.table1.Field<string>("imss").Trim() == @t.table2.Field<string>("nss") &&
                            @t.table1.Field<string>("estado").Trim() == @t.table2.Field<string>("estado"))
                    .Select(@t => @t.table1);
            var missing = from table1 in visualFoxProDataTable.AsEnumerable()
                          where !matched.Contains(table1)
                          select table1;
            if (missing.ToList().Count > 0)
            {
                DataTable dt = missing.CopyToDataTable();
                Empleado empleado = new Empleado();
                for (var i = 0; i < dt.Rows.Count; i++)
                {

                    empleado.id_empleado = dt.Rows[i][0].ToString().TrimStart('0');
                    empleado.Nombre = dt.Rows[i][1].ToString();
                    empleado.Paterno = dt.Rows[i][2].ToString();
                    empleado.Materno = dt.Rows[i][3].ToString();
                    empleado.Sexo = dt.Rows[i][4].ToString();
                    empleado.Id_turno = dt.Rows[i][5].ToString();
                    empleado.Id_area = dt.Rows[i][6].ToString();
                    empleado.Nss = dt.Rows[i][7].ToString();
                    empleado.Id_estado = dt.Rows[i][8].ToString();
                    _vfp2mysql.Actualizar(_vfp2mysql.Existe(dt.Rows[i][0].ToString()) ? 1 : 2, empleado);
                }
            }
        }
        public void Actualizar(int seleccion,Empleado emp)
        {
            try
            {

                var cmd = new MySqlCommand { CommandText = Query(seleccion,emp) };
                if (!AbrirConexion()) return;
                cmd.Connection = _conexionMySql;
                cmd.ExecuteNonQuery();
            }
            catch (MySqlException e)
            {
                CargarConfiguracion.Log(e.Message);
                throw;
            }
            finally
            {
                CerrarConexion();
            }
        }
 /// <summary>
 /// Funcion meramente interna de la clase
 /// </summary>
 /// <param name="seleccion">id del query</param>
 /// <param name="empleado">Clase con los valores del empleado</param>
 /// <returns></returns>
 internal string Query(int seleccion, Empleado empleado)
 {
     switch (seleccion)
     {
         case 1:
             StrSelectQuery = "" +
                              "update empleado " +
                              "set nombre='"+empleado.Nombre.Trim() +"'"+
                              ",materno='" + empleado.Materno.Trim() + "'" +
                              ",paterno='" + empleado.Paterno.Trim() + "'" +
                             ",sexo='" + empleado.Sexo.Trim() + "'" +
                             ",id_turno='" + empleado.Id_turno.Trim() + "'" +
                             ",id_area='" + empleado.Id_area.Trim() + "'" +
                             ",nss='" + empleado.Nss.Trim() + "'" +
                             ",estado='"+empleado.Id_estado+"'"
                             +" where id_empleado='"+empleado.id_empleado+"'";
             break;
         case 2:
             StrSelectQuery = "insert into empleado(id_empleado,nombre,paterno,materno,sexo,id_turno" +
                              ",id_area,nss,estado) values(" +
                              "'" + empleado.id_empleado.Trim() + "'," +
                              "'" + empleado.Nombre.Trim() + "'," +
                              "'" + empleado.Paterno.Trim() + "'," +
                              "'" + empleado.Materno.Trim() + "'," +
                              "'" + empleado.Sexo.Trim() + "'," +
                              "'" + empleado.Id_turno.Trim() + "'," +
                              "'" + empleado.Id_area.Trim() + "'," +
                              "'" + empleado.Nss.Trim() + "'," +
                              "'" + empleado.Id_estado.Trim() + "')";
             break;
     }
     return StrSelectQuery;
 }
Beispiel #4
0
        private void CompararHilos()
        {
            var mySqlDataTable = new DataTable();
            var visualFoxProDataTable = new DataTable();
            var dt = new DataTable();

            unsafe
            {

                mySqlDataTable = _vfp2mysql.Select(2);
                visualFoxProDataTable = _vfp2mysql.SelectVfp(1);
                dt = visualFoxProDataTable.Clone();
                System.Threading.Tasks.Parallel.For(0, visualFoxProDataTable.Rows.Count, y =>
                {
                    for (var x = 0; x < mySqlDataTable.Rows.Count; x++)
                    {
                        if (visualFoxProDataTable.Rows[y]["emplnum"].ToString().PadLeft(5, '0') == mySqlDataTable.Rows[x]["id_empleado"].ToString().PadLeft(5, '0'))
                        {
                            if (visualFoxProDataTable.Rows[y]["nombre"].ToString().Trim() != mySqlDataTable.Rows[x]["nombre"].ToString() ||
                                     visualFoxProDataTable.Rows[y]["apellido1"].ToString().Trim() != mySqlDataTable.Rows[x]["paterno"].ToString() ||
                                     visualFoxProDataTable.Rows[y]["apellido2"].ToString().Trim() != mySqlDataTable.Rows[x]["materno"].ToString() ||
                                     visualFoxProDataTable.Rows[y]["imss"].ToString().Trim() != mySqlDataTable.Rows[x]["nss"].ToString() ||
                                     visualFoxProDataTable.Rows[y]["estado"].ToString().Trim() != mySqlDataTable.Rows[x]["estado"].ToString())
                            {
                                DataRow row;
                                row = dt.NewRow();
                                row.ItemArray = visualFoxProDataTable.Rows[y].ItemArray;
                                dt.Rows.Add(row);
                            }
                        }
                    }
                });
            }
            Empleado empleado = new Empleado();
            for (var i = 0; i < dt.Rows.Count; i++)
            {
                empleado.id_empleado = dt.Rows[i][0].ToString().TrimStart('0');
                empleado.Nombre = dt.Rows[i][1].ToString();
                empleado.Paterno = dt.Rows[i][2].ToString();
                empleado.Materno = dt.Rows[i][3].ToString();
                empleado.Sexo = dt.Rows[i][4].ToString();
                empleado.Id_turno = dt.Rows[i][5].ToString();
                empleado.Id_area = dt.Rows[i][6].ToString();
                empleado.Nss = dt.Rows[i][7].ToString();
                empleado.Id_estado = dt.Rows[i][8].ToString();
                _vfp2mysql.Actualizar(_vfp2mysql.Existe(dt.Rows[i][0].ToString()) ? 1 : 2, empleado);
            }
        }