public void UpdateTodayMatch() { DataClassesMatchDataContext matches = new DataClassesMatchDataContext(Conn.conn); var lt = matches.Live_Table.OrderBy(o => o.S_date).ThenBy(p => p.S_time);//用lambda表达式简洁 foreach (var m in lt) { if (m.Home_team_big != null) { //一一对应生成 Live_Table_lib ltl = new Live_Table_lib(); ltl.Html_position = Int32.Parse(m.Html_position); ltl.Home_team_big = Int32.Parse(GetNumber(m.Home_team_big)); ltl.Away_team_big = Int32.Parse(GetNumber(m.Away_team_big)); ltl.Match_type = m.Match_type.Trim(); if (m.S_date.IndexOf("-") != -1) temp_date = m.S_date.Substring(0, 10); ltl.Match_time = DateTime.Parse(temp_date + " " + m.S_time); ltl.Status = m.Full_time_score.Replace(" ", "").Trim(); ltl.Home_team = m.Home_team.Trim(); ltl.Away_team = m.Away_team.Trim(); ltl.Home_red_card = StringCount(m.Home_team, " ", 0); ltl.Away_red_card = StringCount(m.Away_team, " ", 0); ltl.Full_home_goals = null; ltl.Full_away_goals = null; if (m.Half_time_score.IndexOf("-") > 0) { ltl.Half_home_goals = Int32.Parse(m.Half_time_score.Substring(0, m.Half_time_score.IndexOf("-"))); ltl.Half_away_goals = Int32.Parse(m.Half_time_score.Substring(m.Half_time_score.IndexOf("-") + 1, m.Half_time_score.Length - m.Half_time_score.IndexOf("-") - 1)); } var rtExist = matches.Live_Table_lib.Where(p => p.Home_team_big == ltl.Home_team_big && p.Away_team_big == ltl.Away_team_big); //let关键字,匿名类型 var rtUpdateExist = from p in rtExist let timeDiff = ltl.Match_time.Value - p.Match_time.Value where timeDiff.Days <= 1 where timeDiff.Days >= -1 select p; //存在记录的则做更新,必须确认是最新数据,即时间差不超过1天 if (rtUpdateExist.Any()) { var rtUpate = rtUpdateExist.First(); rtUpate.Status = ltl.Status; rtUpate.Home_team = ltl.Home_team; rtUpate.Away_team = ltl.Away_team; rtUpate.Home_red_card = ltl.Home_red_card; rtUpate.Away_red_card = ltl.Away_red_card; rtUpate.Half_home_goals = ltl.Half_home_goals; rtUpate.Half_away_goals = ltl.Half_away_goals; //matches.SubmitChanges(); } //不存在记录的此处做插入 else { matches.Live_Table_lib.InsertOnSubmit(ltl); matches.SubmitChanges(); } } } matches.Live_Table.DeleteAllOnSubmit(lt);//更新后删除 matches.SubmitChanges(); MessageBox.Show("OK"); //dataGridView1.DataSource = matches.live_Table_lib; }
partial void UpdateLive_Table_lib(Live_Table_lib instance);
partial void DeleteLive_Table_lib(Live_Table_lib instance);
partial void InsertLive_Table_lib(Live_Table_lib instance);