string[] CustomerCode_,CustomerName_,Years_;      //存放客户代码,客户名称,和年份的数组
            double[] CustomerAllPrice_;             //存放每个客户每年的销售额            double cuAllPrice = 0;          //初始所有客户销售额,选中客户销售额
            string sqls = "SELECT SUM(AllPrice) AS AllPrice, YEAR(SYSUD) AS Y, customer_code, customer_name FROM product_analysis_month_tubing3 GROUP BY YEAR(SYSUD), customer_code, customer_name";
            DataSet sets = WebData1.dataSet(sqls);            for (int i = 0; i < sets.Tables[0].Rows.Count; i++)
            {
                cuAllPrice += double.Parse(sets.Tables[0].Rows[i]["AllPrice"].ToString());
                if (cu == sets.Tables[0].Rows[i]["customer_code"].ToString())
                {
                    CustomerCode_[i] = sets.Tables[0].Rows[i]["customer_code"].ToString();
                    CustomerName_[i] = sets.Tables[0].Rows[i]["customer_name"].ToString();//使用了未赋值的局部变量
                    Years_[i] = sets.Tables[0].Rows[i]["Y"].ToString();
                    CustomerAllPrice_[i] = double.Parse(sets.Tables[0].Rows[i]["AllPrice"].ToString());
                }
            }高人指点一下,谢谢

解决方案 »

  1.   

    string[] CustomerCode_= new string[sets.Tables[0].Rows.Count];
    其他数组都这样申明
      

  2.   


    CustomerName_[i] = sets.Tables[0].Rows[i]["customer_name"].ToString();//使用了未赋值的局部变量
    是不是customer_name并没有值
      

  3.   

    用 List 呗。来一个 Add 一个。
      

  4.   

    我也认为用Arraylist比较好,更适合动态数组
      

  5.   

    如果用arraylist,请大家给个示例。谢谢
      

  6.   

    CustomerName_[i] = sets.Tables[0].Rows[i]["customer_name"].ToString();//使用了未赋值的局部变量在一开始的时候,你对这个变量进行初始化,就不会出现此结果但是如果你说是无赋值的情况,那你要看你其他的代码如果你说是动态数组,那你获取的时候,动态就有Length()了,用此长度初始化arraylist挺好,多几行代码罢了
      

  7.   

    public class Customer_
    {
      pubilc string CustomerCode_;
      public string CustomerName_;
      public string Years_;   public Customer_(string customerCode, string ustomerName, string years)
      {
        CustomerCode_ = customerCode;
        CustomerName_ = ustomerName;
        Years_ = years;
      }
    }ArrayList Customer_List = new ArrayList();for (int i = 0; i < sets.Tables[0].Rows.Count; i++)
      {
      cuAllPrice += double.Parse(sets.Tables[0].Rows[i]["AllPrice"].ToString());
      if (cu == sets.Tables[0].Rows[i]["customer_code"].ToString())
      {
        Customer_List.Add(new Customer_(sets.Tables[0].Rows[i]["customer_code"].ToString(), sets.Tables[0].Rows[i]["customer_name"].ToString(), sets.Tables[0].Rows[i]["Y"].ToString()));
     CustomerAllPrice_[i] = double.Parse(sets.Tables[0].Rows[i]["AllPrice"].ToString());
      }
      }可以使用linq做查询