public void ComTable(DB.IDB from_db, DB.IDB to_db, out List <string> insert_lis, out List <string> update_lis) { insert_lis = new List <string>(); update_lis = new List <string>(); string sql = ""; if (sync_type == 0) { sql = $"select {sel_field2} keys,update_time from {table_name} order by {key_field}"; DataTable from_tb = from_db.ExecuteToTable(sql); Dictionary <string, string> to_dic = to_db.ExecuteToDic <string, string>(sql, "keys", "update_time"); foreach (DataRow dr in from_tb.Rows) { string key = dr["keys"].ToString(); DateTime update_time = dr["update_time"].ToDateTime(); if (to_dic.TryGetValue(key, out string dt)) { //比较时间 if (dt.ToDateTime() != update_time) { update_lis.Add(key); } } else { insert_lis.Add(key); } } } else if (sync_type == 1) { sql = $"select {sel_field2} keys from {table_name} order by {key_field}"; DataTable from_tb = from_db.ExecuteToTable(sql); foreach (DataRow dr in from_tb.Rows) { string key = dr["keys"].ToString(); insert_lis.Add(key); } to_db.ExecuteScalar($"delete from {table_name}"); } else if (sync_type == 2) { sql = $"select {sel_field2} keys from {table_name} order by {key_field}"; DataTable from_tb = from_db.ExecuteToTable(sql); List <string> to_lis = to_db.ExecuteToList <string>(sql, "keys"); HashSet <string> to_hs = new HashSet <string>(to_lis); foreach (DataRow dr in from_tb.Rows) { string key = dr["keys"].ToString(); if (!to_hs.Contains(key)) { insert_lis.Add(key); } } } }