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; }
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); } }