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; }
}
}
}}
///////////////////////////////////////////////填充单元格 // }
//} //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; }
}
}
}}
你写了那么多代码(也真难为你了),其实只要几行就解决问题
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()); //添加数据
就可以了