partial void DeleteLive_Table_lib(Live_Table_lib instance);
 partial void UpdateLive_Table_lib(Live_Table_lib instance);
 partial void InsertLive_Table_lib(Live_Table_lib instance);
        private void button24_Click_2(object sender, EventArgs eeee)
        {
            DialogResult result; //Messagebox所属于的类
            result = MessageBox.Show(this, "YesOrNo", "你确定要删除分析库?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.Yes)//Messagebox返回的值
            {
                //提取去年的数据
                DateTime dt = DateTime.Now.AddYears(-1);

                List<Live_Table_lib> ltls = new List<Live_Table_lib>();

                using (DataClassesMatchDataContext matches = new DataClassesMatchDataContext(Conn.conn))
                {
                    var result_tb = matches.Result_tb_lib.Where(e => e.Match_time > dt).OrderBy(e => e.Match_time);
                    foreach (var r in result_tb)
                    {
                        Live_Table_lib ltl = new Live_Table_lib();
                        ltl.Match_time = r.Match_time;
                        ltl.Html_position = r.Html_position;
                        ltl.Match_type = r.Match_type;
                        ltl.Home_team_big = r.Home_team_big;
                        ltl.Home_team = r.Home_team;
                        ltl.Away_red_card = r.Away_red_card;
                        ltl.Away_team_big = r.Away_team_big;
                        ltl.Away_team = r.Away_team;
                        ltl.Away_red_card = r.Away_red_card;
                        ltl.Full_home_goals = r.Full_home_goals;
                        ltl.Full_away_goals = r.Full_away_goals;
                        ltl.Half_home_goals = r.Half_home_goals;
                        ltl.Half_away_goals = r.Half_away_goals;
                        ltl.Status = r.Odds;
                        //matches.Live_Table_lib.InsertOnSubmit(ltl);
                        ltls.Add(ltl);
                    }
                    //matches.SubmitChanges();
                }
                using (SqlConnection con = new SqlConnection(Conn.conn))
                {
                    con.Open();
                    using (SqlTransaction tran = con.BeginTransaction())
                    {
                        var newOrders = ltls;
                        SqlBulkCopy bc = new SqlBulkCopy(con,
                            //SqlBulkCopyOptions.CheckConstraints |
                            //SqlBulkCopyOptions.FireTriggers |
                          SqlBulkCopyOptions.KeepNulls, tran);
                        bc.BulkCopyTimeout = 36000;
                        bc.BatchSize = 10000;
                        bc.DestinationTableName = "Live_Table_lib";
                        bc.WriteToServer(newOrders.AsDataReader());
                        tran.Commit();
                    }
                    con.Close();
                }
                MessageBox.Show("OK");
            }
        }
        public string UpdateTodayMatch()
        {
            int i = 0;
            DataClassesMatchDataContext matches = new DataClassesMatchDataContext(Conn.conn);
            var lt = matches.Live_Table.OrderBy(o => o.S_date).ThenBy(p => p.S_time);//用lambda表达式简洁
            ILookup<string, Live_Table_lib> ltl_look 
                = matches .Live_Table_lib.ToLookup(e => e.Home_team_big.ToString() + "-" +e.Away_team_big.ToString() + "-" + e.Match_time.Value.ToShortDateString());

            foreach (var m in lt)
            {
                i++;
                ProgressBarDelegate.DoSendPMessage(i);
                Application.DoEvents();

                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("&nbsp;", "").Trim();
                    ltl.Home_team = m.Home_team.Trim();
                    ltl.Away_team = m.Away_team.Trim();
                    ltl.Home_red_card = StringCount(m.Home_team, "&nbsp;", 0);
                    ltl.Away_red_card = StringCount(m.Away_team, "&nbsp;", 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 Math.Abs(timeDiff.Days) <= 1
                                        select p;
                     * */

                    var rtUpdateExist 
                        = ltl_look[ltl.Home_team_big.ToString() + "-" +ltl.Away_team_big.ToString() + "-" + ltl.Match_time.Value.ToShortDateString()];

                    //存在记录的则做更新,必须确认是最新数据,即时间差不超过1天
                    if (rtUpdateExist.Any())
                    {
                        int ltlid = rtUpdateExist.First().Live_table_lib_id;
                        var rtUpate = matches.Live_Table_lib
                        .Where(e => e.Live_table_lib_id == ltlid).First();

                        rtUpate.Match_time = ltl.Match_time;  //时间也需要更新 2011.7.24
                        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");
            return "OK";
            //dataGridView1.DataSource = matches.live_Table_lib;
        }
        public void UpdateTodaymatch()
        {
            //SoccerScoreCompact match = new SoccerScoreCompact(cnn);
            var lt = Conn.match.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("&nbsp;", "").Trim();
                    ltl.Home_team = m.Home_team.Trim();
                    ltl.Away_team = m.Away_team.Trim();
                    ltl.Home_red_card = StringCount(m.Home_team, "&nbsp;", 0);
                    ltl.Away_red_card = StringCount(m.Away_team, "&nbsp;", 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 = Conn.match.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;
                        //match.SubmitChanges();
                    }
                    //不存在记录的此处做插入
                    else
                    {
                        Conn.match.Live_Table_lib.InsertOnSubmit(ltl);
                        Conn.match.SubmitChanges();
                    }
                }
            }

            Conn.match.Live_Table.DeleteAllOnSubmit(lt);//更新后删除
            Conn.match.SubmitChanges();
            MessageBox.Show("OK");
            //dataGridView1.DataSource = match.Live_Table_lib;
        }