/// <summary> /// 查询全部数据 /// </summary> /// <returns>IList</returns> /*查看是否为视图*/ public IList <wanggong_dianpu> SearchAll() { DBHelper.sqlstr = "select * from wanggong_dianpu "; List <wanggong_dianpu> list = new List <wanggong_dianpu>(); SqlDataReader reader = DBHelper.ExecuteReader(); while (reader.Read()) { wanggong_dianpu Obj = GetByReader(reader); list.Add(Obj); } reader.Close(); return(list); }
void bind_dianpu() { IList <wanggong_dianpu> list = BLL2.wanggong_dianpuManager.SearchAll(); //cb_dianpu.DataSource = list; wanggong_dianpu dp = new wanggong_dianpu(); dp.wdpname = "请选择"; dp.wdTBID = ""; dp.wid = 0; list.Insert(0, dp); cb_dianpu.DataSource = list; cb_dianpu.DisplayMember = "wdpname";//绑定泛型中类的属性 cb_dianpu.ValueMember = "wid"; }
/// <summary> /// 高级搜索 /// </summary> /// <param name="s">起始位置</param> /// <param name="e">结束位置</param> /// <param name="key">关键词</param> /// <param name="state">状态</param> /// <param name="begin">开始时间</param> /// <param name="end">结束时间</param> /// <param name="orderby">排序方式</param> /// <returns></returns> public IList <wanggong_dianpu> Search(int s, int e, string key, string state, DateTime begin, DateTime end, string orderby) { string sql1 = "select top " + (e - s + 1).ToString() + " * from wanggong_dianpu where "; string sql2 = string.IsNullOrEmpty(key) ? " 1=1 " : " ( wdpname like '%" + key + "%' or wdTBID like '%" + key + "%' or wdwangwang like '%" + key + "%' or wdremark1 like '%" + key + "%' or wdremark2 like '%" + key + "%'or wdremark3 like '%" + key + "%'or wdremark4 like '%" + key + "%' ) "; DBHelper.sqlstr = sql1 + sql2; string sql3 = string.IsNullOrEmpty(state) ? " " : " and wdstate='" + state + "' "; string sql4 = begin == new DateTime() ? "" : " and datediff(d,'" + begin.ToString("yyyy-MM-dd") + "',wdcollectdate)>=0 "; string sql5 = end == new DateTime() ? "" : " and datediff(d,'" + end.ToString("yyyy-MM-dd") + "',wdcollectdate)<=0 "; string sql6 = string.IsNullOrEmpty(orderby) ? " order by wdcollectdate desc " : " order by " + orderby; string sql7 = s == 1 ? "" : " and wid not in ( select top " + (s - 1).ToString() + " wid from wanggong_dianpu where " + sql2 + sql3 + sql4 + sql5 + " ) "; DBHelper.sqlstr = sql1 + sql2 + sql4 + sql3; List <wanggong_dianpu> list = new List <wanggong_dianpu>(); SqlDataReader reader = DBHelper.ExecuteReader(); while (reader.Read()) { wanggong_dianpu Obj = GetByReader(reader); list.Add(Obj); } reader.Close(); return(list); }
/// <summary> /// 采集网供数据 /// </summary> void CaiJiWG() { GC.Collect(); dgv1.Rows.Clear(); //设置采集时间 DateCaiJi = DateTime.Now; //设置店铺ID int dpid = 0; string str = cb_dianpu.Text.Trim(); string temp_shopid = cb_dianpu.SelectedValue == null ? "" : cb_dianpu.SelectedValue.ToString(); //判断是否是网址 int temp_isurl = str.IndexOf("http"); //string id = Manager.GetValueByURL(str, "id"); if (temp_isurl > -1 || str == "请选择") { MessageBox.Show("请输入正确的旺旺名称或者店铺名称"); return; } //如果是选择下拉菜单中的店铺 if (temp_shopid != "0") { if (int.TryParse(temp_shopid, out dpid)) { try { wanggong_dianpu temp_dp = BLL2.wanggong_dianpuManager.SearchByID(dpid); //wanggong_dianpu temp_dp = BLL2.wanggong_dianpuManager.Search(1, 10, temp_shopid, "", new DateTime(), new DateTime(), "")[0]; str = temp_dp.wdwangwang; } catch { } } } string pagenum = txt_page.Text.Trim(); int page_temp = 0; if (!int.TryParse(pagenum, out page_temp)) { MessageBox.Show("请输入正确的采集页数"); return; } //设置进度条 toolStripProgressBar1.Maximum = page_temp * 24; toolStripProgressBar1.Value = 0; //根据旺旺查询店铺ID string url = CaiJi.GetShopSearchURL(str); //url = Browser.UrlEncode(url, Encoding.UTF8); //Debug.WriteLine(url); //跳转到搜索店铺页面 Browser.urlstr = url; webBrowser1.Navigate(Browser.urlstr); //判断是否加载完成 if (Browser.WaitWebPageLoad(webBrowser1)) { try { if (webBrowser1.Document != null) { string url_shop = CaiJi.GetShopUrlByWangWang(str, webBrowser1); //如果没有找到店铺网址,或者没有开店信息 if (string.IsNullOrEmpty(url_shop)) { Debug.WriteLine("采集店铺时,没有找到店铺网址,或者没有开店信息"); MessageBox.Show("没有采集到该店铺信息"); return; } List <string> list_url = new List <string>(); List <wanggong_goods> list_goods = new List <wanggong_goods>(); //默认查询20页 for (int i = 0; i < page_temp; i++) { string url_goodslist = CaiJi.GetShopGoodsListURL_NewOn(url_shop, i + 1); Browser.urlstr = url_goodslist; //跳转到商品列表页面 webBrowser1.Navigate(Browser.urlstr); //判断是否加载完成 if (Browser.WaitWebPageLoad(webBrowser1)) { if (webBrowser1.Document != null) { //设置店铺ID if (dpid == 0) { //在本页获取店铺信息 wanggong_dianpu dp = CaiJi.SearchPage_DianPu(DateCaiJi, webBrowser1); BLL2.wanggong_dianpuManager.Insert(dp); IList <wanggong_dianpu> list_dianpu = BLL2.wanggong_dianpuManager.Search(1, 1, dp.wdTBID, "", DateCaiJi, DateCaiJi, ""); if (list_dianpu.Count > 0) { dpid = list_dianpu[0].wid; } else { MessageBox.Show("采集失败,获取店铺信息失败"); return; } } //判断是否还有商品 Browser.jsstr = " getClassName('no-result-new').length; "; if (Browser.JS_WebBrowser(webBrowser1) == "1") { break; } else { //开始采集商品 //List<Entity.wanggong_goods> list_wg = SearchPage_GetWangGongGoods(DateCaiJi, webBrowser1); #region //开始采集 //List<wanggong_goods> list_wg = new List<wanggong_goods>(); Browser.jsstr = " getClassName('photo').length; "; string res = Browser.JS_WebBrowser(webBrowser1); Debug.WriteLine("本页面商品数量为:" + res);//输出 int list_count1 = 0; //如果没有商品,则返回空 if (!int.TryParse(res, out list_count1)) { Debug.WriteLine("没有获取到商品");//输出 break; } else { //遍历每个商品 for (int j = 0; j < list_count1; j++) { //进度条+1 toolStripProgressBar1.PerformStep(); wanggong_goods wg = new wanggong_goods(); string tbid = CaiJi.SearchPage_GetTBID(j, webBrowser1); IList <wanggong_goods> list_temp = BLL2.wanggong_goodsManager.Search(1, 10, tbid, 0, new DateTime(), new DateTime(), ""); if (list_temp.Count > 0) { wg = list_temp[0]; } wg.wgcollectdate = DateCaiJi; wg.wgimg = CaiJi.SearchPage_GetImgUrl(j, webBrowser1); wg.wgprice2 = CaiJi.SearchPage_GetPrice(j, webBrowser1); wg.wgtittle = CaiJi.SearchPage_GetTitle(j, webBrowser1); wg.wgurl = CaiJi.SearchPage_GetGoodsUrl(j, webBrowser1); wg.wgxiaoliang = CaiJi.SearchPage_GetSales(j, webBrowser1); wg.wgTBid = CaiJi.SearchPage_GetTBID(j, webBrowser1); //下载图片 string imgurl = CaiJi.GetImgSizeByUrl(wg.wgimg, 150); string imgname = !string.IsNullOrEmpty(wg.wgremark) ? wg.wgremark : DateTime.Now.ToString("yyyyMMddhhmmss") + Manager.RandomNumber(1000, 99999).ToString() + ".jpg"; Manager.DownloadFile(imgurl, Manager.imgsite_wanggong, imgname, 1000); wg.wgremark = imgname; list_goods.Add(wg); dgv1.DataSource = Manager.BindingSort_wanggong_goods(list_goods); } } #endregion } } } } foreach (wanggong_goods wg in list_goods) { wg.wid = dpid; //把每个采集到的商品添加到数据库 BLL2.wanggong_goodsManager.Insert(wg); //dgv1.DataSource = Manager.BindingSort_wanggong_goods(list_goods); } dgv1.DataSource = Manager.BindingSort_wanggong_goods(list_goods); GC.Collect();//释放内存 } } catch (Exception ex) { Debug.WriteLine("======================================================================"); Debug.WriteLine("网址:" + Browser.urlstr); Debug.WriteLine(DateTime.Now.ToString()); Debug.WriteLine("全店采集信息失败:" + ex.Message); MessageBox.Show("全店采集信息失败:" + ex.Message); } } toolStripProgressBar1.Value = page_temp * 24; bind_dianpu(); }