【发布时间】:2019-01-10 12:24:55
【问题描述】:
我正在尝试使用从 CSV 文件中获取的数据填充 Datagrid。
但我希望动态添加列,因为我的 CSV 文件中的列数不同。
我不希望在我的“Rows.Add”中预定义列数,如下所示-
dataTable.Rows.Add(totalData[0], totalData[1], totalData[2], totalData[3]);
我尝试了其他两种方法,但在那些方法中都不起作用。 下面是我的代码-
using (var selectFileDialog = new OpenFileDialog())
{
if (selectFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = selectFileDialog.FileName.ToString();
StreamReader streamReader = new StreamReader(filePath);
string[] totalData = new string[File.ReadAllLines(filePath).Length];
DataTable dataTable = new DataTable();
//Fill DataGrid Column Names
totalData = streamReader.ReadLine().Split(';');
for(int i=0; i< totalData.Length; i++)
{ dataTable.Columns.Add(totalData[i]); }
//Fill DataGrid DATA
while (!streamReader.EndOfStream)
{
totalData = streamReader.ReadLine().Split(';');
//METHOD 1: Need a Replacement for this. Dont want a predefined it.
dataTable.Rows.Add(totalData[0], totalData[1], totalData[2], totalData[3]);
//METHOD 2: Doesn't Work. Fills the entire data in the very first column
for (int i = 0; i < totalData.Length; i++)
{ dataTable.Rows.Add(totalData[i]); }
//METHOD 3: Doesn't Work. Throws a Null Pointer Exception.
dgDataFromCSV.Rows[0].Cells[0].Value = "test";
}
dgDataFromCSV.DataSource = dataTable;
}
}
欢迎任何想法,或不使用其他方法/方法来实现它。
【问题讨论】:
标签: c# winforms csv datagrid rows