PageRenderTime 41ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/SqlCompact/Soccer Score Forecast/Soccer Score Forecast/DAL_HtmlSql/SevenmResultToSql.cs

http://htmlconvertsql.googlecode.com/
C# | 135 lines | 113 code | 12 blank | 10 comment | 11 complexity | e01180becaec4269e04798c4ba7b204c MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data;
  6. using System.IO;
  7. using System.Data.Linq;
  8. using System.Data.Linq.Mapping;
  9. using System.Reflection;
  10. using System.Linq.Expressions;
  11. using System.ComponentModel;
  12. using HtmlAgilityPack;
  13. using SoccerScore.Compact.Linq;
  14. using System.Windows.Forms;
  15. namespace Soccer_Score_Forecast
  16. {
  17. public class SevenmResultToSql : ElementParserFunction
  18. {
  19. private HtmlAgilityPackGeneric SevenmResult;
  20. public SevenmResultToSql(string _html)
  21. {
  22. SqlAgilityPackTableXpath tbTag = new SqlAgilityPackTableXpath("data2.7m.cn");
  23. SevenmResult = new HtmlAgilityPackGeneric(_html, tbTag.tbTag, 1);
  24. //SevenmResult = new HtmlAgilityPackGeneric(_html, "//table[@id='result_tb']", 1);
  25. }
  26. public decimal InsertLastHtmlTableToDB()
  27. {
  28. DataTable dt = SevenmResult.GetHtmlTable();
  29. //SoccerScoreCompact match = new SoccerScoreCompact(cnn);
  30. foreach (DataRow aa in dt.Rows)
  31. {
  32. if (HtmlTextToStr(aa[3].ToString()) != null)
  33. {
  34. Result_tb rt = new Result_tb();
  35. rt.Html_position = aa[0].ToString();
  36. rt.Match_type = HtmlTextToStr(aa[1].ToString());
  37. rt.S_time = HtmlTextToStr(aa[2].ToString());
  38. rt.Home_team = HtmlTextToStr(aa[3].ToString());
  39. rt.Full_time_score = HtmlTextToStr(aa[4].ToString());
  40. rt.Away_team = HtmlTextToStr(aa[5].ToString());
  41. rt.Half_time_score = HtmlTextToStr(aa[6].ToString());
  42. rt.Odds = HtmlTextToStr(aa[7].ToString());
  43. rt.Win_loss_big = HtmlTextToStr(aa[8].ToString());
  44. rt.S_date = HtmlDateToStrResult(aa[2].ToString());
  45. rt.Home_team_big = HtmlHrefToStr(aa[3].ToString());
  46. rt.Away_team_big = HtmlHrefToStr(aa[5].ToString());
  47. Conn.match.Result_tb.InsertOnSubmit(rt);
  48. Conn.match.SubmitChanges();
  49. }
  50. }
  51. return Conn.match.Result_tb.Select(e => e.Result_tb_id).Max();
  52. }
  53. //??????????????????
  54. public SevenmResultToSql()
  55. {
  56. }
  57. private string temp_time = null;
  58. private int last_line = 0;
  59. public void UpdateLastmatch()
  60. {
  61. int i = 0;
  62. //SoccerScoreCompact match = new SoccerScoreCompact(cnn);
  63. var rt = Conn.match.Result_tb.OrderBy(o => o.S_date).ThenBy(p => p.S_time);//?lambda?????
  64. //???????
  65. DateTime lib_max_Match_time = Conn.match.Result_tb_lib.Select(p => p.Match_time).Max().Value.AddDays(-2);
  66. foreach (var m in rt)
  67. {
  68. i++;
  69. ProgressBarDelegate.DoSendPMessage(i);
  70. Application.DoEvents();
  71. if (m.Home_team_big != null)
  72. {
  73. Result_tb_lib rtl = new Result_tb_lib();
  74. rtl.Html_position = Int32.Parse(m.Html_position);
  75. rtl.Home_team_big = Int32.Parse(GetNumber(m.Home_team_big));
  76. rtl.Away_team_big = Int32.Parse(GetNumber(m.Away_team_big));
  77. rtl.Match_type = m.Match_type.Trim();
  78. last_line = m.S_time.LastIndexOf("\n");
  79. temp_time=m.S_time.Substring(last_line,m.S_time.Length-last_line-1);
  80. rtl.Match_time= DateTime.Parse(m.S_date.Substring(0, 10) + " " + temp_time);
  81. rtl.Odds = m.Odds.Trim();
  82. rtl.Win_loss_big = m.Win_loss_big.Trim();
  83. rtl.Home_team = m.Home_team.Trim();
  84. rtl.Away_team = m.Away_team.Trim();
  85. rtl.Home_red_card = StringCount(m.Home_team, " ", 0);
  86. rtl.Away_red_card =StringCount(m.Away_team, " ", 0);
  87. string bf = m.Full_time_score.Replace(" ", "").Replace(" ", "");
  88. if (m.Full_time_score.IndexOf("-") > 0)
  89. {
  90. rtl.Full_home_goals = Int32.Parse(bf.Substring(0, bf.IndexOf("-")));
  91. rtl.Full_away_goals = Int32.Parse(bf.Substring(bf.IndexOf("-") + 1, bf.Length - bf.IndexOf("-") - 1));
  92. }
  93. if (m.Half_time_score.IndexOf("-") > 0)
  94. {
  95. rtl.Half_home_goals = Int32.Parse(m.Half_time_score.Substring(0, m.Half_time_score.IndexOf("-")));
  96. rtl.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));
  97. }
  98. //????????????????
  99. if (rtl.Match_time > lib_max_Match_time)
  100. {
  101. //??????????
  102. var rtExist = from p in Conn.match.Result_tb_lib
  103. where p.Match_time == rtl.Match_time
  104. where p.Home_team_big == rtl.Home_team_big
  105. where p.Away_team_big == rtl.Away_team_big
  106. select p;
  107. //??????????
  108. if (!rtExist.Any())
  109. {
  110. Conn.match.Result_tb_lib.InsertOnSubmit(rtl);
  111. Conn.match.SubmitChanges();
  112. }
  113. }
  114. //?????
  115. Conn.match.Result_tb.DeleteOnSubmit(m);
  116. Conn.match.SubmitChanges();
  117. }
  118. }
  119. MessageBox.Show("OK");
  120. //dataGridView1.DataSource = match.Result_tb_lib;
  121. }
  122. }
  123. }