for (int id = 0; id < liststr.Count;id++ )
            {
                m_dtExpert = new DataTable[id];
                m_dtExpert[id].Columns.Add(id+""); //这句报错,索引超出了数组界限。
            }
索引

解决方案 »

  1.   

    for (int id = 0; id < liststr.Count;id++ )
                {
                    m_dtExpert = new DataTable[id];
                    m_dtExpert.Columns[id].Add(id+"");  
                }
      

  2.   

    实例化DataTable怎么还有个[id]????
      

  3.   

       m_dtExpert.Columns.Add(id.ToString());  
      

  4.   

     m_dtExpert = new DataTable(id.ToString());
                    m_dtExpert.Columns[id].Add(id+"");  
      

  5.   

    我的意思是 创建多个Table 每个table都新建一个列
           m_dtExpert=new  DataTable[liststr.Count];
              foreach(DataTable ta in m_dtExpert)
              {
                  ta.Columns.Add("11");  //还是不正确
              }
      

  6.   

    m_dtExpert要先添加列,然后再根据列添加相应的值
      

  7.   

    吧datatable全部存在一个dataset里面,
    DataSet ds=new DataSet();for (int i = 0; i < 100; i++)
    {
    DataTable dt=new DataTable();
    dt.TableName=i.ToString();
    dt.Columns.Add(i.ToString());
    ds.Tables.Add(dt);
    }
    获取某个datatable可以通过索引也可以通过table的名字
    //通过索引
    DataTable dt_temp = ds.Tables[88];
    //通过名字
    DataTable dt_temp = ds.Tables["88"];
      

  8.   

    m_dtExpert[id-1].Columns.Add(id+"");
    这样写,然后就会出现经典的错误:未将对象引用到实例
      

  9.   

      DataSet set = new DataSet();
                    for (int i = 0; i < 10; i++)
                    {
                        DataTable tab = new DataTable();
                        tab.Columns.Add("A");
                        set.Tables.Add(tab);
                    }