示例#1
0
        /// <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);
        }
示例#2
0
        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";
        }
示例#3
0
        /// <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);
        }
示例#4
0
        /// <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();
        }