C#读取DAT文本文件然后显示在dataGridView1里面;问题是代码运行后DAT文本第一行数据顺利填充到第一行;数据2本计划是填充到第二行的,结果将第一行覆盖,如下图所示
                    ///////////////////////////////////////////////填充单元格                    //    }
                    //}                    //private void button2_Click(object sender, EventArgs e)
                    //{                    //新建DataTable,增加列
                                       DataTable dt = new DataTable();                                      //步骤1:                                     dt.Columns.Add("id", typeof(string));
                    dt.Columns.Add("S1", typeof(string));
                    dt.Columns.Add("T1", typeof(string));
                    dt.Columns.Add("S2", typeof(string));
                    dt.Columns.Add("T2", typeof(string));
                    dt.Columns.Add("S3", typeof(string));
                    dt.Columns.Add("T3", typeof(string));
                    dt.Columns.Add("S4", typeof(string));
                    dt.Columns.Add("T4", typeof(string));
                    dt.Columns.Add("S5", typeof(string));
                    dt.Columns.Add("T5", typeof(string));
                    dt.Columns.Add("S6", typeof(string));
                    dt.Columns.Add("T6", typeof(string));
                    dt.Columns.Add("S7", typeof(string));
                    dt.Columns.Add("T7", typeof(string));
                    dt.Columns.Add("S8", typeof(string));
                    dt.Columns.Add("T8", typeof(string));
                    dt.Columns.Add("S9", typeof(string));
                    dt.Columns.Add("T9", typeof(string));
                    dt.Columns.Add("S10", typeof(string));
                    dt.Columns.Add("T10", typeof(string));
                    dt.Columns.Add("S11", typeof(string));
                    dt.Columns.Add("T11", typeof(string));
                    dt.Columns.Add("S12", typeof(string));
                    dt.Columns.Add("T12", typeof(string));
                    dt.Columns.Add("S13", typeof(string));
                    dt.Columns.Add("T13", typeof(string));
                    dt.Columns.Add("S14", typeof(string));
                    dt.Columns.Add("T14", typeof(string));
                    dt.Columns.Add("S15", typeof(string));
                    dt.Columns.Add("T15", typeof(string));
                    dt.Columns.Add("S16", typeof(string));
                    dt.Columns.Add("T16", typeof(string));
                    dt.Columns.Add("S17", typeof(string));
                    dt.Columns.Add("T17", typeof(string));
                    this.dataGridView1.AutoGenerateColumns = true;//不自动                     dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;              
                    ////步骤2:                    string[] data = S1.Split();  //S1为上一级数据源     
                    string[] dataT1 = T1.Split();  
                    string[] dataS2 = S2.Split(); 
                    string[] dataT2 = T2.Split(); 
                    string[] dataS3 = S3.Split(); 
                    string[] dataT3 = T3.Split();  
                    string[] dataS4 = S4.Split(); 
                    string[] dataT4 = T4.Split();  
                    string[] dataS5 = S5.Split(); 
                    string[] dataT5 = T5.Split();  
                    string[] dataS6 = S6.Split();  
                    string[] dataT6 = T6.Split(); 
                    string[] dataS7 = S7.Split(); 
                    string[] dataT7 = T7.Split();  
                    string[] dataS8 = S8.Split();  
                    string[] dataT8 = T8.Split();  
                    string[] dataS9 = S9.Split();  
                    string[] dataT9 = T9.Split();  
                    string[] dataS10 = S10.Split();  
                    string[] dataT10 = T10.Split();  
                    string[] dataS11 = S11.Split();  
                    string[] dataT11 = T11.Split();  
                    string[] dataS12 = S12.Split(); 
                    string[] dataT12 = T12.Split();  
                    string[] dataS13 = S13.Split(); 
                    string[] dataT13 = T13.Split();  
                    string[] dataS14 = S14.Split();  
                    string[] dataT14 = T14.Split();  
                    string[] dataS15 = S15.Split();  
                    string[] dataT15 = T15.Split();  
                    string[] dataS16 = S16.Split();  
                    string[] dataT16 = T16.Split();  
                    string[] dataS17 = S17.Split();  
                    string[] dataT17 = T17.Split();                      DataRow dr = dt.NewRow();
                    //  步骤3:赋值                    dr[1] = data[0];
                    dr[2] = dataT1[0];
                    dr[3] = dataS2[0];
                    dr[4] = dataT2[0];
                    dr[5] = dataS3[0];
                    dr[6] = dataT3[0];
                    dr[7] = dataS4[0];
                    dr[8] = dataT4[0];
                    dr[9] = dataS5[0];
                    dr[10] = dataT5[0];
                    dr[11] = dataS6[0];
                    dr[12] = dataT6[0];
                    dr[13] = dataS7[0];
                    dr[14] = dataT7[0];
                    dr[15] = dataS8[0];
                    dr[16] = dataT8[0];
                    dr[17] = dataS9[0];
                    dr[18] = dataT9[0];
                    dr[19] = dataS10[1];
                    dr[20] = dataT10[1];
                    dr[21] = dataS11[1];
                    dr[22] = dataT11[1];
                    dr[23] = dataS12[1];
                    dr[24] = dataT12[1];
                    dr[25] = dataS13[1];
                    dr[26] = dataT13[1];
                    dr[27] = dataS14[1];
                    dr[28] = dataT14[1];
                    dr[29] = dataS15[1];
                    dr[30] = dataT15[1];
                    dr[31] = dataS16[1];
                    dr[32] = dataT16[1];
                    dr[33] = dataS17[1];
                    dr[34] = dataT17[1];                    dt.Rows.Add(dr.ItemArray);                   
                  //将datatable绑定到datagridview上显示结果
                    this.dataGridView1.DataSource = dt;                }
            }
        }
    }}

解决方案 »

  1.   

    又不要你贴全部代码(贴了反而看不清)
    你写了那么多代码(也真难为你了),其实只要几行就解决问题
                var a = new string[] //假定数据已读取到数组,就像这样
                {
                    "S1 12",
                    "S2 22",
                    "S3 33",
                };
                var dt = new DataTable(); //创建 DataT
                dt.Columns.AddRange(a.Select(x => new DataColumn(x.Split(' ')[0])).ToArray()); //添加列
                dt.Rows.Add(a.Select(x => x.Split(' ')[1]).ToArray()); //添加数据后续数据的追加,只要先判断 this.dataGridView1.DataSource 是否不为为空
    直接 (this.dataGridView1.DataSource as DataTable).Rows.Add(a.Select(x => x.Split(' ')[1]).ToArray()); //添加数据
    就可以了