Arraylist到Datatable错误

时间:2011-09-01 19:57:12

标签: c# arraylist

我将数据从ArrayList传输到DataTable,但我从第一行得到了重复的结果集。你能在代码中看到我的错误吗?谢谢!

我的代码如下:

    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();

1 个答案:

答案 0 :(得分:0)

看起来你永远不会从阵列中获取新值。试试这个:

    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);
    }