【问题标题】:Fill dynamic Column Data in Rows.Add in Datagrid, Winform在 Rows 中填充动态列数据。在 Datagrid、Winform 中添加
【发布时间】: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


    【解决方案1】:

    您可以使用 dataTable.NewRow() 创建一个新的空 DataRow,然后使用循环将值分配给 DataRow,最后使用 dataTable.Rows.Add(newDataRow) 将 DataRow 附加到表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 2016-09-28
      相关资源
      最近更新 更多