Example #1
0
        /// <summary>
        /// 디비에 insert함 타겟테이블은 lotto임
        /// 추후 디테일 Insert할 경우 오버라이드 할것
        /// </summary>
        /// <param name="con">SqlConn 객체</param>
        /// <param name="lotto">Lotto 클래스 객체 넣어줄것</param>
        private static void DBInsert(SqlConnection con, Lotto lotto)
        {
            #region DB Insert 시퀀스
            SqlCommand com = new SqlCommand();
            com.Connection  = con;
            com.CommandType = CommandType.StoredProcedure;
            com.CommandText = "InsertLotto";

            com.Parameters.AddWithValue("@lottonum", lotto.LottoNum);
            com.Parameters.AddWithValue("@winningnum", lotto.WinningNum);
            com.Parameters.AddWithValue("@etc", lotto.Etc);

            com.ExecuteNonQuery();

            #endregion
        }
Example #2
0
        /// <summary>
        /// DataShow -> DataSet으로 .. 리스트에 값을 넣어주기로 함
        /// </summary>
        void DataSet()
        {
            using (SqlConnection con = new SqlConnection(dbstring))
                using (SqlCommand com = new SqlCommand())
                {
                    con.Open();
                    com.Connection  = con;
                    com.CommandType = System.Data.CommandType.StoredProcedure;
                    com.CommandText = "GetEntryLotto";

                    SqlDataReader reader = com.ExecuteReader();

                    cbo_lottoNum.Items.Add("전체");
                    while (reader.Read())
                    {
                        Lotto lotto = new Lotto(Convert.ToInt32(reader[0].ToString()), reader[1].ToString(), reader[2].ToString());
                        lottos.Add(lotto);

                        cbo_lottoNum.Items.Add(lotto.LottoNum);
                    }
                    DataShow(lottos);
                }
        }
Example #3
0
        private void LottoParser(int final)
        {
            using (SqlConnection con = new SqlConnection(dbstring))
            {
                con.Open();
                bool flag = false;

                // 못읽는거 체크 여기 지워야함
                //final = -1;

                while (true)
                {
                    //정지구분
                    //if (final == 30) flag = true;

                    string uriString = ConfigurationManager.AppSettings["url1"];
                    final     += 1;
                    uriString += "&drwNo=" + final;

                    uri = new Uri(uriString);

                    #region  효데이터 찾고 리스트 추가 시퀀스
                    HttpWebResponse response     = WebRequest.Create(uri).GetResponse() as HttpWebResponse;
                    StreamReader    streamReader = new StreamReader(response.GetResponseStream(), Encoding.Default);
                    string          webString    = streamReader.ReadToEnd();

                    HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
                    htmlDoc.LoadHtml(webString);

                    //  최신회차의 로또가 있는지를 검사함
                    //  DB에 이전 회차까지의 당첨번호가 있다면 <DB의 내역을 가져온다>
                    //  만약 DB에 당첨번호가 없다면 < 파싱해 0 ~ 최신회차까지의 데이터를 전부 파싱한다.
                    if (LottoValidChk(htmlDoc))
                    {
                        MessageBox.Show("최신회차의 로또가 아직 없어요.");
                        //  최신회차가 없고 데이터베이스에 저장된 인스턴스의 마지막 회차가 0이 아니라면
                        //  결국 디비가 최신이라는 의미임
                        if (GetFinalNum() != 0)
                        {
                            DataSet();
                            break;
                        }
                    }

                    Lotto  lotto   = new Lotto();
                    string getInfo = htmlDoc.DocumentNode.SelectNodes("//meta")[3].GetAttributeValue("content", "");
                    lotto.LottoNum   = Int32.Parse(getInfo.Remove(getInfo.IndexOf("회")).Remove(0, 4));
                    lotto.WinningNum = getInfo.Remove(getInfo.IndexOf(".")).Remove(0, getInfo.IndexOf("호") + 1);
                    lotto.Etc        = getInfo.Remove(getInfo.LastIndexOf(".")).Remove(0, getInfo.IndexOf(".") + 1);

                    listLotto.Add(lotto);

                    #endregion

                    #region 상권이디테일
                    DetailLotto detailLotto = new DetailLotto();

                    detailLotto.LottoNum = Int32.Parse(getInfo.Remove(getInfo.IndexOf("회")).Remove(0, 4));

                    detailLotto.Rank = new int[5] {
                        Int32.Parse(htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.InnerText.Remove(1)), Int32.Parse(htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.InnerText.Remove(1)), Int32.Parse(htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.InnerText.Remove(1)), Int32.Parse(htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.InnerText.Remove(1)), Int32.Parse(htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.InnerText.Remove(1))
                    };

                    detailLotto.Price = new string[5] {
                        htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.InnerText.Replace("원", ""), htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.InnerText.Replace("원", ""), htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.InnerText.Replace("원", ""), htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.InnerText.Replace("원", ""), htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.InnerText.Replace("원", "")
                    };

                    detailLotto.Person = new int[5] {
                        Int32.Parse(htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.InnerText.Replace(",", "")), Int32.Parse(htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.InnerText.Replace(",", "")), Int32.Parse(htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.InnerText.Replace(",", "")), Int32.Parse(htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.InnerText.Replace(",", "")), Int32.Parse(htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.InnerText.Replace(",", ""))
                    };

                    detailLotto.PersonPrice = new string[5] {
                        htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.InnerText, htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.InnerText, htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.InnerText, htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.InnerText, htmlDoc.DocumentNode.SelectNodes("//tbody")[0].FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.InnerText
                    };

                    listDetailLotto.Add(detailLotto);
                    #endregion

                    DBInsert(con, lotto);
                }
                DataSet();
            }
        }