Arraylist to Datable error

Arraylist to Datable error

问题描述:

我正在将数据从ArrayList传输到DataTable,但是我从第一行获取重复结果集。你能在代码中看到我的错误吗?谢谢!Arraylist to Datable error

我的代码如下:

private void BindGridview() 
    { 
     cipDAL.openConnection(); 
     records = cipDAL.GetAllCIPS(); 
     string[] arr = records.OfType<object>().Select(o => o.ToString()).ToArray(); 
     DataTable dtNew = new DataTable(); 
     DataRow dr; 
     dtNew.Columns.Add("FY"); 
     dtNew.Columns.Add("CIP"); 
     dtNew.Columns.Add("STATUS"); 
     dtNew.Columns.Add("REVISION"); 
     dtNew.Columns.Add("PR"); 
     dtNew.Columns.Add("PA"); 
     dtNew.Columns.Add("CIPTOTAL"); 
     dtNew.Columns.Add("PLANTOTAL"); 
     dtNew.Columns.Add("CHECKED"); 
     dtNew.Columns.Add("CIPID"); 
     for(int i = 0; i < arr.GetLength(0); i++) 
     { 
      dr = dtNew.NewRow(); 
      dr[0] = arr.GetValue(0).ToString(); 
      dr[1] = arr.GetValue(1).ToString(); 
      dr[2] = arr.GetValue(2).ToString(); 
      dr[3] = arr.GetValue(3).ToString(); 
      dr[4] = arr.GetValue(4).ToString(); 
      dr[5] = arr.GetValue(5).ToString(); 
      dr[6] = arr.GetValue(6).ToString(); 
      dr[7] = arr.GetValue(7).ToString(); 
      dr[8] = arr.GetValue(8).ToString(); 
      dr[9] = arr.GetValue(9).ToString(); 
      dtNew.Rows.Add(dr); 

     } 
     gvCIP.DataSource = dtNew; 
     gvCIP.DataBind(); 
     cipDAL.closeConnection(); 
+0

一个数组列表?这是2011年大声哭泣。 –

它看起来像你永远抓住你的阵列的新值。试试这可能是:

for(int i = 0; i < arr.GetLength(0); i++) 
    { 
     dr = dtNew.NewRow(); 
     dr[0] = arr[i][0]; 
     dr[1] = arr[i][1]; 
     dr[2] = arr[i][2]; 
     dr[3] = arr[i][3]; 
     dr[4] = arr[i][4]; 
     dr[5] = arr[i][5]; 
     dr[6] = arr[i][6]; 
     dr[7] = arr[i][7]; 
     dr[8] = arr[i][8]; 
     dr[9] = arr[i][9]; 
     dtNew.Rows.Add(dr); 
    } 
+0

感谢您的响应,但是,这给我一个错误下的GetValue(呃字符串不包含一个定义的GetValue) – Charles

+0

我假设你需要单个字符的字符串?我做了改变,以反映 –

+0

这是正确的,再次感谢 - 呃。 “索引超出了数组范围”我觉得我忽略了一些相当简单的东西。 – Charles