获取到listUserAll 的想要的结果,如下面:--索引 1 :记录{"1","a1","b1","c1","d1"}
--索引 2 :记录{"2","a2","b2","c2","d2"}可实际得到的结果是:
--索引 1 :记录{"1","a1","b1","c1","d1","2","a2","b2","c2","d2"}
--索引 2 :记录{"1","a1","b1","c1","d1","2","a2","b2","c2","d2"} 如下面的编码:
            ArrayList listUserinfo = new ArrayList();
            ArrayList listUserAll = new ArrayList();            String strSql = "SELECT * FROM P_TEST ORDER BY T_ID DESC";            try
            {
                OleDbDataReader dataRead = ClassFile.AccessHelper.ExecuteReader(ClassFile.AccessHelper.ConnectionString, strSql, null);                while (dataRead.Read())
                {
                    listUserinfo.Add(dataRead["T_ID"].ToString());
                    listUserinfo.Add(dataRead["T_COMPANY"].ToString());
                    listUserinfo.Add(dataRead["T_CATALOG"].ToString());
                    listUserinfo.Add(dataRead["T_TYPE"].ToString());
                    listUserinfo.Add(dataRead["T_FILE"].ToString());
                    listUserAll.Add(listUserinfo);  //感觉这里出了问题,是不是它加的也是一个对象而不是一个值?
                }
                return listUserAll;
                            }
            catch (Exception ex)
            {
                throw ex;
            }
另,怎么获取它的结果.. listUserAll[0][0].tostring() 好像不行。

解决方案 »

  1.   

    你应该在while里每次new 一个listUserinfo对象
      

  2.   

    listUserinfo 的初始化要放在while里面:
      while (dataRead.Read())
      {
      ArrayList listUserinfo = new ArrayList();
      listUserinfo.Add(dataRead["T_ID"].ToString());
      listUserinfo.Add(dataRead["T_COMPANY"].ToString());
      listUserinfo.Add(dataRead["T_CATALOG"].ToString());
      listUserinfo.Add(dataRead["T_TYPE"].ToString());
      listUserinfo.Add(dataRead["T_FILE"].ToString());
      listUserAll.Add(listUserinfo); //感觉这里出了问题,是不是它加的也是一个对象而不是一个值?
      }
      return listUserAll;
      }