首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

来帮忙,新手进来学习

2012-01-06 
高手进来帮忙,新手进来学习!string strconnection serverlocalhostuidsapasswordwxjdatabasenot

高手进来帮忙,新手进来学习!
string strconnection = "server=localhost;uid=sa;password=wxj;database=notebook;";
  SqlConnection thisconnection = new SqlConnection(strconnection);
  thisconnection.Open();
  SqlCommand thiscommand = new SqlCommand("select brand,grabfrom from brand", thisconnection);
  SqlDataReader thisread = thiscommand.ExecuteReader();

  WebClient mywebclient = new WebClient();
  mywebclient.Credentials = CredentialCache.DefaultCredentials;
  int number = 0;
  SqlCommand sqlcommand_successful = null;
  string brand = "";
  string grab_test= "";
  while (thisread.Read())
  {
  brand += thisread["brand"].ToString();
  grab_test += thisread["grabfrom"].ToString();
   
  number++;
  Console.WriteLine("这是中关村手机的第" + number + "品牌!" + " " +brand + "\n\n");
  byte[] mybyte = mywebclient.DownloadData(grab_test);
  string mystring = Encoding.Default.GetString(mybyte);


  Regex re = new Regex(@"条,(?<page>[\s\S]*?)\s页");
  MatchCollection mc = re.Matches(mystring);
  int testabc = 0;
  testabc++;
  int testint = 0;

  foreach (Match m in mc)
  {

  string test = m.Groups["page"].ToString();
  int i = int.Parse(test);

  for (int ztx = 1; ztx <= i; ztx++)
  {


  WebClient webclient2008 = new WebClient();
  webclient2008.Credentials = CredentialCache.DefaultCredentials;
  //thisread["grabfrom"].ToString().Replace("1", "3")
  byte[] byte2008 = webclient2008.DownloadData(grab_test.Replace("_1.html", "_" + ztx.ToString() + ".html"));
  string string2008 = Encoding.Default.GetString(byte2008);
  Regex re2 = new Regex(@"<div class=""pro_img"">[\s\S]*?href=""(?<grab1>[\s\S]*?)""[\s\S]*?src=""(?<small_image>[\s\S]*?)""");
  MatchCollection mc2 = re2.Matches(string2008);
  foreach (Match m2 in mc2)
  {


  // Console.WriteLine(testabc + m2.Groups["grab1"].ToString() + m2.Groups["small_image"].ToString());
  // string abc = m2.Groups["grab1"].ToString();
  // Console.WriteLine(abc);


  WebClient webclient_end = new WebClient();
  webclient_end.Credentials = CredentialCache.DefaultCredentials;
  byte[] end_byte = webclient_end.DownloadData(m2.Groups["grab1"].ToString());
  string end_string = Encoding.Default.GetString(end_byte);
  Regex regex_end = new Regex(@"id=""td_param"">[\s\S]*?href=""(?<grab2>[\s\S]*?)""");
  MatchCollection mc_end = regex_end.Matches(end_string);
  foreach (Match m_end in mc_end)


  {
  testint++;
  Console.WriteLine(testint + " http://detail.zol.com.cn/" + m_end.Groups["grab2"].ToString());
  WebClient ztxweblient = new WebClient();
  ztxweblient.Credentials = CredentialCache.DefaultCredentials;

  byte[] ztxbyte = ztxweblient.DownloadData("http://detail.zol.com.cn/" + m_end.Groups["grab2"].ToString());
  string ztxstring = Encoding.Default.GetString(ztxbyte);
  Regex ztxregex = new Regex(@"<div\sclass=""mid_bom"">[\s\S]*?<div\sclass=""mid_bom_1"">(?<html_detail>[\s\S]*?)</div><table|<div\sclass=""para_title""><font\sclass=""lan18b"">(?<name>[\s\S]*?)</font>[\s\S]*?class='cheng12'>(?<i_ckjg>[\s\S]*?)</span>[\s\S]*?class=""a_lan12"">(?<i_sjbj>[\s\S]*?)</a>[\s\S]*?手机类型:[\s\S]*?<div\sclass=""para_name2"">(?<i_sjlx>[\s\S]*?)</div>[\s\S]*?手机制式:[\s\S]*?<div\sclass=""para_name2"">(?<i_sjzs>[\s\S]*?)</div>[\s\S]*?<div\sclass=""para_name2"">(?<i_pmsc>[\s\S]*?)</div>|和弦铃声:[\s\S]*?para_name2"">(?<i_hxls>[\s\S]*?)</div>|上市日期:[\s\S]*?<div class=""para_name2"">(?<i_ssrq>[\s\S]*?)</div>");
  MatchCollection mc_ztx = ztxregex.Matches(ztxstring);
  string result = "";
  string name = "";
  string i_ckjg = "";
  string i_sjbj = "";
  string i_sjlx = "";
  string i_sjzs = "";
  string i_pmsc = "";
  string i_hxls = "";
  string i_ssrq = "";
  string strsql = "";
  foreach (Match m_ztx in mc_ztx)
  {
   
  byte[] b = System.Text.Encoding.Default.GetBytes(m_ztx.Groups["html_detail"].ToString());
  result += Encoding.Default.GetString(b);
  name += m_ztx.Groups["name"].ToString();
  i_ckjg += m_ztx.Groups["i_ckjg"].ToString();
  i_sjbj += m_ztx.Groups["i_sjbj"].ToString();
  i_sjlx += m_ztx.Groups["i_sjlx"].ToString();
  i_sjzs += m_ztx.Groups["i_sjzs"].ToString();
  i_pmsc += m_ztx.Groups["i_pmsc"].ToString();
  i_hxls += m_ztx.Groups["i_hxls"].ToString();
  i_ssrq += m_ztx.Groups["i_ssrq"].ToString();
  Console.WriteLine(m_ztx.Groups["i_ssrq"].ToString());
  strsql = "insert into list(brand_id,time_create,url_grab,small_image,url_grab2,html_detail,i_name,i_ckjg,i_sjbj,i_sjlx,i_sjzs,i_pmsc,i_hxls,i_ssrq)values('" + testabc + "','" + DateTime.Now.ToString() + "','" + m2.Groups["grab1"].ToString() + "','" + m2.Groups["small_image"].ToString() + "','http://detail.zol.com.cn/" + m_end.Groups["grab2"].ToString() + "','" + result + "','" + name + "','" + i_ckjg + "','" + i_sjbj + "','" + i_sjlx + "','" + i_sjzs + "','" + i_pmsc + "','" + i_hxls + "','" + i_ssrq + "')";


   
  }
   
  sqlcommand_successful = new SqlCommand(strsql, thisconnection);
  thisread.Close();
  sqlcommand_successful.ExecuteNonQuery();
   
  }}}}  


   
  Console.Write("Grab Finish ……Please Press Enter to Exit Application !");
  Console.Read();
   
走了一遍完整的入口,然后提示:thisread.read()已经关闭,无效

如果我删掉thisread.read()的话那么提示:请先关闭thisread.read()

求解!

[解决办法]
进来学习!
[解决办法]
仔细检查下;这个问题根据 提示 估计不难

热点排行