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()求解!