/// <summary> /// 从一个SqlDataReader里读数据 /// </summary> /// <param name="Reader">SqlDataReader</param> /// <returns>opponent_dianpuExample</returns> public static opponent_dianpu GetByReader(SqlDataReader Reader) { opponent_dianpu opponent_dianpuExample = new opponent_dianpu(); opponent_dianpuExample.oid = Reader["oid"] == DBNull.Value ? 0 : (int)Reader["oid"]; opponent_dianpuExample.odpname = Reader["odpname"] == DBNull.Value ? null : Reader["odpname"].ToString(); opponent_dianpuExample.odcollectdate = Reader["odcollectdate"] == DBNull.Value ? null : Reader["odcollectdate"].ToString(); opponent_dianpuExample.odTBID = Reader["odTBID"] == DBNull.Value ? null : Reader["odTBID"].ToString(); opponent_dianpuExample.odwangwang = Reader["odwangwang"] == DBNull.Value ? null : Reader["odwangwang"].ToString(); return(opponent_dianpuExample); }
void bind_dianpu() { IList <opponent_dianpu> list = BLL2.opponent_dianpuManager.SearchAll(); //cb_dianpu.DataSource = list; opponent_dianpu dp = new opponent_dianpu(); dp.odpname = "请选择"; dp.odTBID = ""; dp.oid = 0; list.Insert(0, dp); cb_dianpu.DataSource = list; }
/// <summary> /// 查询全部数据 /// </summary> /// <returns>IList</returns> /*查看是否为视图*/ public IList <opponent_dianpu> SearchAll() { DBHelper.sqlstr = "select * from opponent_dianpu ORDER BY odcollectdate desc "; List <opponent_dianpu> list = new List <opponent_dianpu>(); SqlDataReader reader = DBHelper.ExecuteReader(); while (reader.Read()) { opponent_dianpu Obj = GetByReader(reader); list.Add(Obj); } reader.Close(); return(list); }
/// <summary> /// 获取最后一条信息 /// </summary> /// <param name="oid">编号</param> /// <returns></returns> /*查看是否为视图*/ public opponent_dianpu SearchLastOne() { DBHelper.sqlstr = "SELECT TOP 1 * FROM opponent_dianpu ORDER BY odcollectdate desc"; SqlDataReader reader = DBHelper.ExecuteReader(); opponent_dianpu Obj = null; if (reader.Read()) { Obj = GetByReader(reader); } reader.Close(); return(Obj); }
/// <summary> /// 根据表,获取一个SqlParameter数组 /// </summary> /// <returns>SqlParameter[]</returns> public static SqlParameter[] GetSqlParameters(opponent_dianpu opponent_dianpuExample) { List <SqlParameter> list_param = new List <SqlParameter>(); if (!string.IsNullOrEmpty(opponent_dianpuExample.odpname)) { list_param.Add(new SqlParameter("@odpname", opponent_dianpuExample.odpname)); } else { list_param.Add(new SqlParameter("@odpname", DBNull.Value)); } if (!string.IsNullOrEmpty(opponent_dianpuExample.odcollectdate)) { list_param.Add(new SqlParameter("@odcollectdate", opponent_dianpuExample.odcollectdate)); } else { list_param.Add(new SqlParameter("@odcollectdate", DBNull.Value)); } if (!string.IsNullOrEmpty(opponent_dianpuExample.odTBID)) { list_param.Add(new SqlParameter("@odTBID", opponent_dianpuExample.odTBID)); } else { list_param.Add(new SqlParameter("@odTBID", DBNull.Value)); } if (!string.IsNullOrEmpty(opponent_dianpuExample.odwangwang)) { list_param.Add(new SqlParameter("@odwangwang", opponent_dianpuExample.odwangwang)); } else { list_param.Add(new SqlParameter("@odwangwang", DBNull.Value)); } SqlParameter[] param = new SqlParameter[list_param.Count]; int index = 0; foreach (SqlParameter p in list_param) { param[index] = p; index++; } return(param); }
/// <summary> /// 插入方法 /// </summary> /// <param name="opponent_dianpu">opponent_dianpu表实例</param> /// <returns>int</returns> public static int Insert(opponent_dianpu opponent_dianpuExample) { int temp = SearchNum(opponent_dianpuExample.odTBID); if (temp == 0) { return(Service.Insert(opponent_dianpuExample)); } else { IList <opponent_dianpu> list = Search(1, 99, opponent_dianpuExample.odTBID, ""); opponent_dianpu dp = list[0]; opponent_dianpuExample.oid = dp.oid; return(Service.Update(opponent_dianpuExample)); } }
/// <summary> /// 根据oid,查询一条数据 /// </summary> /// <param name="oid">编号</param> /// <returns></returns> /*查看是否为视图*/ public opponent_dianpu SearchByID(int oid) { DBHelper.sqlstr = "select * from opponent_dianpu where oid = @oid"; SqlParameter[] param = new SqlParameter[] { new SqlParameter("@oid", oid) }; SqlDataReader reader = DBHelper.ExecuteReader(param); opponent_dianpu Obj = null; if (reader.Read()) { Obj = GetByReader(reader); } reader.Close(); return(Obj); }
/// <summary> /// 高级搜索 /// </summary> /// <param name="s">起始位置</param> /// <param name="e">结束为止</param> /// <param name="key">关键词</param> /// <param name="orderby">排序</param> /// <returns>IList<opponent_dianpu></returns> public IList <opponent_dianpu> Search(int s, int e, string key, string orderby) { string sql1 = "select top " + (e - s + 1).ToString() + " * from opponent_dianpu where "; string sql2 = string.IsNullOrEmpty(key) ? " 1=1 " : " ( odpname like '%" + key + "%' or odTBID like '%" + key + "%' or odcollectdate like '%" + key + "%' or odwangwang like '%" + key + "%' ) "; string sql3 = string.IsNullOrEmpty(orderby) ? " order by odcollectdate desc " : " order by " + orderby; string sql4 = s == 1 ? "" : " and oid not in ( select top " + (s - 1).ToString() + " oid from opponent_dianpu where " + sql2 + sql3 + " ) "; DBHelper.sqlstr = sql1 + sql2 + sql4 + sql3; List <opponent_dianpu> list = new List <opponent_dianpu>(); SqlDataReader reader = DBHelper.ExecuteReader(); while (reader.Read()) { opponent_dianpu Obj = GetByReader(reader); list.Add(Obj); } reader.Close(); return(list); }
/// <summary> /// 高级搜索 /// </summary> /// <param name="s">起始位置</param> /// <param name="e">结束为止</param> /// <param name="key">关键词</param> /// <param name="orderby">排序</param> /// <returns>IList<opponent_dianpu></returns> public IList <opponent_dianpu> Search(int s, int e, string key, string orderby) { string sql1 = "select * from opponent_dianpu where "; string sql2 = string.IsNullOrEmpty(key) ? " 1=1 " : " ( odpname like '%" + key + "%' or odTBID like '%" + key + "%' or odcollectdate like '%" + key + "%' or odwangwang like '%" + key + "%' ) "; string sql3 = string.IsNullOrEmpty(orderby) ? " order by odcollectdate desc " : " order by " + orderby; string sql9 = e == 0 ? " " : " limit " + s + "," + e; DBHelper.sqlstr = sql1 + sql2 + sql3 + sql9; List <opponent_dianpu> list = new List <opponent_dianpu>(); MySqlDataReader reader = DBHelper.ExecuteReader(); while (reader.Read()) { opponent_dianpu Obj = GetByReader(reader); list.Add(Obj); } reader.Close(); return(list); }
void bind() { try { opponent_dianpu dp = BLL2.opponent_dianpuManager.SearchLastOne(); if (dp != null) { IList <opponent_dianpu_info> list = BLL2.opponent_dianpu_infoManager.Search(1, 100, "", "", dp.odcollectdate, ""); if (list.Count > 0) { bind_dianpu_info(list[0]); } IList <opponent_goods> list2 = BLL2.opponent_goodsManager.Search(1, 9999, "", "", "", dp.odcollectdate, ""); dgv1.DataSource = Manager.BindingSort_opponent_goods(list2); } } catch (Exception ex) { MessageBox.Show("绑定失败" + ex.Message); } }
/// <summary> /// 更新 /// </summary> /// <param name="opponent_dianpu">opponent_dianpu表实例</param> /// <returns>int</returns> public static int Update(opponent_dianpu opponent_dianpuExample) { return(Service.Update(opponent_dianpuExample)); }
/// <summary> /// 更新 /// </summary> /// <param name="opponent_dianpu">opponent_dianpu表实例</param> /// <returns>int</returns> public int Update(opponent_dianpu opponent_dianpuExample) { DBHelper.sqlstr = "update opponent_dianpu set odpname=@odpname,odcollectdate=@odcollectdate,odTBID=@odTBID,odwangwang=@odwangwang where oid=" + opponent_dianpuExample.oid; return(DBHelper.ExecuteNonQuery(GetSqlParameters(opponent_dianpuExample))); }
/// <summary> /// 插入方法 /// </summary> /// <param name="opponent_dianpu">opponent_dianpu表实例</param> /// <returns>int</returns> public int Insert(opponent_dianpu opponent_dianpuExample) { DBHelper.sqlstr = "insert into opponent_dianpu (odpname,odcollectdate,odTBID,odwangwang)values(@odpname,@odcollectdate,@odTBID,@odwangwang)"; return(DBHelper.ExecuteNonQuery(GetSqlParameters(opponent_dianpuExample))); }
private void btn_caiji1_Click(object sender, EventArgs e) { GC.Collect(); dgv1.Rows.Clear(); string str = txt_key.Text.Trim(); //判断是否已经选择采集店铺 string temp_dp = cb_dianpu.SelectedValue.ToString(); if (!string.IsNullOrEmpty(temp_dp)) { IList <opponent_dianpu> temp_listdp2 = BLL2.opponent_dianpuManager.Search(1, 100, temp_dp, ""); if (temp_listdp2.Count > 0) { str = temp_listdp2[0].odwangwang; } } //str = "https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-14460596614.23.XM7KUF&id=540733715384";//sunny家网址 if (string.IsNullOrEmpty(str)) { MessageBox.Show("请输入要分析的店铺"); return; //str = "miss原创定制"; } //判断是否是网址 int temp_isurl = str.IndexOf("http"); string id = Manager.GetValueByURL(str, "id"); string datenow = DateTime.Now.ToString("yyyy年MM月dd日HH时mm分"); //如果是网址 if (temp_isurl > -1 && !string.IsNullOrEmpty(id)) { //string url = Manager.GetDPurlByWangwang(str); Browser.urlstr = str; webBrowser1.Navigate(Browser.urlstr); //判断是否加载完成 if (Browser.WaitWebPageLoad(webBrowser1)) { try { if (webBrowser1.Document != null) { //判断是否是邮费链接 HtmlElementCollection elem1 = webBrowser1.Document.GetElementById("attributes").GetElementsByTagName("ul")[0].GetElementsByTagName("li"); if (elem1.Count > 0) { //string datenow = DateTime.Now.ToString("yyyy年MM月dd日HH时mm分"); //先采集商品 opponent_goods og = CaiJi.CaijiGoods(datenow, webBrowser1); List <opponent_goods> list = new List <opponent_goods>(); if (og != null) { list.Add(og); dgv1.DataSource = Manager.BindingSort_opponent_goods(list); //再采集店铺信息,需要跳转页面 Entity.opponent_dianpu dp = CaiJi.CaijiDP(datenow, webBrowser1); BLL2.opponent_dianpuManager.Insert(dp); opponent_dianpu_info dpinfo = CaiJi.CaijiDPSDR(datenow, webBrowser1); dpinfo = bind_dianpu_info(list, dpinfo); BLL2.opponent_dianpu_infoManager.Insert(dpinfo); BLL2.opponent_goodsManager.Insert(og); GC.Collect();//释放内存 } } else { Debug.WriteLine("======================================================================"); Debug.WriteLine("网址:" + Browser.urlstr); Debug.WriteLine("该商品可能是 邮费链接 "); } } } catch (Exception ex) { //MessageBox.Show("采集信息失败:" + ex.Message); Debug.WriteLine("======================================================================"); Debug.WriteLine("网址:" + Browser.urlstr); Debug.WriteLine(DateTime.Now.ToString()); Debug.WriteLine("单品采集信息失败:" + ex.Message); } } } else { //如果不是网址 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 <opponent_goods> list_goods = new List <opponent_goods>(); //默认查询20页 for (int i = 0; i < 20; i++) { string url_goodslist = CaiJi.GetShopGoodsListURL(url_shop, i + 1); Browser.urlstr = url_goodslist; //跳转到商品列表页面 webBrowser1.Navigate(Browser.urlstr); //break; //判断是否加载完成 if (Browser.WaitWebPageLoad(webBrowser1)) { if (webBrowser1.Document != null) { //判断是否还有商品 Browser.jsstr = " getClassName('no-result-new').length; "; if (Browser.JS_WebBrowser(webBrowser1) == "1") { break; } else { //================ //list_url = CaiJi.GetGoodsUrlList(webBrowser1); //获取本页面商品网址List List <string> temp_list_url = CaiJi.GetGoodsUrlList(webBrowser1); Debug.WriteLine("获取本页面商品网址List" + temp_list_url.Count.ToString()); if (temp_list_url.Count > 0) { foreach (string temp_url1 in temp_list_url) { Browser.urlstr = temp_url1; //跳转到商品页面 webBrowser1.Navigate(Browser.urlstr); if (Browser.WaitWebPageLoad(webBrowser1)) { if (webBrowser1.Document != null) { //判断是否是邮费链接 HtmlElementCollection elem1 = webBrowser1.Document.GetElementById("attributes").GetElementsByTagName("ul")[0].GetElementsByTagName("li"); if (elem1.Count > 0) { opponent_goods og = CaiJi.CaijiGoods(datenow, webBrowser1); if (og != null) { list_goods.Add(og); dgv1.DataSource = Manager.BindingSort_opponent_goods(list_goods); BLL2.opponent_goodsManager.Insert(og); Debug.WriteLine("添加商品:" + og.ogtittle); //绑定店铺信息 opponent_dianpu_info dpinfo2 = new opponent_dianpu_info(); dpinfo2 = bind_dianpu_info(list_goods, dpinfo2); GC.Collect();//释放内存 } } else { Debug.WriteLine("======================================================================"); Debug.WriteLine("网址:" + Browser.urlstr); Debug.WriteLine("该商品可能是 邮费链接 "); } } } } } } } } } dgv1.DataSource = Manager.BindingSort_opponent_goods(list_goods); //在本页获取店铺信息 opponent_dianpu dp = CaiJi.CaijiDP(datenow, webBrowser1); //在本页获取店铺信息 opponent_dianpu_info dpinfo = CaiJi.CaijiDPSDR(datenow, webBrowser1); //从商品列表获取店铺信息 dpinfo = bind_dianpu_info(list_goods, dpinfo); BLL2.opponent_dianpu_infoManager.Insert(dpinfo); BLL2.opponent_dianpuManager.Insert(dp); GC.Collect();//释放内存 } } catch (Exception ex) { Debug.WriteLine("======================================================================"); Debug.WriteLine("网址:" + Browser.urlstr); Debug.WriteLine(DateTime.Now.ToString()); Debug.WriteLine("全店采集信息失败:" + ex.Message); MessageBox.Show("全店采集信息失败:" + ex.Message); } } } bind_dianpu(); MessageBox.Show("采集完成"); }