SqlDb db = null;
          Form1 cs = new Form1();
        SubmitData sdata = new SubmitData();
      string str = "select top 1 * from dbo.In_Interface";
                    DataSet dataSet = db.GetDs(str);
                    db.GetDataReader(str);
                    SqlDataReader dr = db.GetDataReader(str); 
                 if (dr.Read())
                                {
                                     school = dr["school"].ToString();
                                     stuno = dr["stuno"].ToString();
                                }
                                StreamReader reader = cs.PostMsg(sdata.SubmitDeleteStudent("110000000001", "/deleteStudent", school, stuno), "/deleteStudent");
                                string xmlstr = "";
                                string s = "";
                                if (reader != null)
                                {
                                    while ((s = reader.ReadLine()) != null)
                                    {
                                        xmlstr = xmlstr + s;
                                    }
                                    reader.Close();
                                }
                                XmlDocument xml = new XmlDocument();
                                string rut = "";
                                xml.LoadXml(xmlstr);
                                XmlNodeList xmllist = xml.GetElementsByTagName("hRet");
                                foreach (XmlNode xn2 in xmllist)
                                {
                                    XmlElement xe2 = (XmlElement)xn2;
                                    rut = xe2.InnerText.ToString();
                                }
                                if (rut == "0")
                                {
                                    string str1 = "update dbo.In_Interface set status=9 where ststus=0";
                                    db.GetDataReader(str1);
                                }
执行这段代码,如果rut返回为0表示执行成功,如果不为0表示不成功。
请问一下,我在线程中执行这段代码的时候,我怎么取得他成功数的总数和不成功的总数了?

解决方案 »

  1.   

    SqlDb db = null; 
              Form1 cs = new Form1(); 
            SubmitData sdata = new SubmitData(); 
          string str = "select top 1 * from dbo.In_Interface"; 
                        DataSet dataSet = db.GetDs(str); 
                        db.GetDataReader(str); 
                        SqlDataReader dr = db.GetDataReader(str); 
                    if (dr.Read()) 
                                    { 
                                        school = dr["school"].ToString(); 
                                        stuno = dr["stuno"].ToString(); 
                                    } 
                                    StreamReader reader = cs.PostMsg(sdata.SubmitDeleteStudent("110000000001", "/deleteStudent", school, stuno), "/deleteStudent"); 
                                    string xmlstr = ""; 
                                    string s = ""; 
                                    if (reader != null) 
                                    { 
                                        while ((s = reader.ReadLine()) != null) 
                                        { 
                                            xmlstr = xmlstr + s; 
                                        } 
                                        reader.Close(); 
                                    } 
                                    XmlDocument xml = new XmlDocument(); 
                                    string rut = ""; 
                                    xml.LoadXml(xmlstr); 
                                    XmlNodeList xmllist = xml.GetElementsByTagName("hRet"); 
                                    int successcount = 0; 
                                    int failcount = 0;
                                    foreach (XmlNode xn2 in xmllist) 
                                    { 
                                        XmlElement xe2 = (XmlElement)xn2; 
                                        rut = xe2.InnerText.ToString(); 
                                        if(rut == "0")
                                           successcount++;
                                        else
                                           failcount++;
                                    } 
                                    if (rut == "0") 
                                    { 
                                        string str1 = "update dbo.In_Interface set status=9 where ststus=0"; 
                                        db.GetDataReader(str1); 
                                    } 
      

  2.   

    定义一个多线程可访问的变量
    volatile int count = 0;
    用该变量统计成功个数
      

  3.   

    在线程定义变量:
    int successcount = 0;//成功线程
    int failcount = 0;//不成功线程
    将上边代码定义为函数,返回rut根据调用时返回值累加两个变量来统计
      

  4.   


    就是不知道在线程中如何来取得rut返回值
      

  5.   

      private void ListViewBind()
            {
                Thread.Sleep(1000);
                if (this.InvokeRequired)
                {
                    this.Invoke(new MethodInvoker(ListViewBind));
                }
                else
                {
                    try
                    {                    string str = "select * from table ";
                        DataSet dataset = db.GetDs(str);
                        this.listView2.Columns.Add("调用接口", 80, HorizontalAlignment.Center);
                        this.listView2.Columns.Add("成功数", 80, HorizontalAlignment.Center);//增加列标题 
                        this.listView2.Columns.Add("失败数", 80, HorizontalAlignment.Center);                    listView2.View = View.Details;
                        listView2.GridLines = true;//显示网格线。。 
                        string[] str1 = new string[3];
                        foreach (DataRow row in dataset.Tables[0].Rows)
                        {
                            str1[0] = row["Interface"].ToString();
                            str1[1] = row["sucnum"].ToString();
                            str1[2] = row["failnum"].ToString();
                            ListViewItem item = new ListViewItem();
                            item.SubItems.Clear();
                            item.SubItems[0].Text = str1[0].ToString();
                            item.SubItems.Add(str1[1]);
                            item.SubItems.Add(str1[2]);
                            listView2.Items.Add(item);
                        }
                    }
                    catch (Exception ee)
                    {
                        Console.WriteLine(ee.Message);
                    }            }
            }
    线程就是这样 ,就是不知道在这里面该怎么统计
      

  6.   


    public partial class FormThread : Form
        {
            int a = 0;
            int b = 0;
            public FormThread()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                Thread thread = new Thread(new ThreadStart(hello));
                thread.Start();
                while (true)
                {
                    if (thread.ThreadState == ThreadState.Stopped)
                    {
                        this.textBox1.Text = a.ToString();
                        this.textBox2.Text = b.ToString();
                        break;
                    }            }
            }        public void hello()
            {
                for (int i = 0; i < 100; i++)
                {
                    if (i % 3 == 0)
                    {
                        a++;
                    }
                    else
                    {
                        b++;
                    }
                }
            }
        }一个在线程里调用全局变量的例子
      

  7.   

    定义两个全局变量分别是记录成功和失败的
    每次调用

    sucess++;

    failed++;
      

  8.   

    加变量   int successcount = 0; 
            int failcount = 0; 
     if(rut == "0") 
       successcount++; 
        else 
      failcount++;     
      

  9.   

    SqlDb db = null; 
              Form1 cs = new Form1(); 
            SubmitData sdata = new SubmitData(); 
          string str = "select top 1 * from dbo.In_Interface"; 
                        DataSet dataSet = db.GetDs(str); 
                        db.GetDataReader(str); 
                        SqlDataReader dr = db.GetDataReader(str); 
                    if (dr.Read()) 
                                    { 
                                        school = dr["school"].ToString(); 
                                        stuno = dr["stuno"].ToString(); 
                                    } 
                                    StreamReader reader = cs.PostMsg(sdata.SubmitDeleteStudent("110000000001", "/deleteStudent", school, stuno), "/deleteStudent"); 
                                    string xmlstr = ""; 
                                    string s = ""; 
                                    if (reader != null) 
                                    { 
                                        while ((s = reader.ReadLine()) != null) 
                                        { 
                                            xmlstr = xmlstr + s; 
                                        } 
                                        reader.Close(); 
                                    } 
                                    XmlDocument xml = new XmlDocument(); 
                                    string rut = ""; 
                                    xml.LoadXml(xmlstr); 
                                    XmlNodeList xmllist = xml.GetElementsByTagName("hRet"); 
                                    int successcount = 0; 
                                    int failcount = 0;                                foreach (XmlNode xn2 in xmllist) 
                                    { 
                                        XmlElement xe2 = (XmlElement)xn2; 
                                        rut = xe2.InnerText.ToString(); 
                                        if(rut == "0") 
                                          successcount++; 
                                        else 
                                          failcount++;                                } 
                                    if (rut == "0") 
                                    { 
                                        string str1 = "update dbo.In_Interface set status=9 where ststus=0"; 
                                        db.GetDataReader(str1); 
                                    } 
    帮你顶了