【问题标题】:How to import csv file in Datagridview with certain columns and rows?如何在 Datagridview 中导入具有某些列和行的 csv 文件?
【发布时间】:2013-10-30 18:37:27
【问题描述】:

我是 VB.net 的新手,我不知道如何在从 CSV 文件导入的 datagridview 中显示某些列和行。我的问题是我有很多列,我只想显示 2 列:

姓名、年龄、手机号码、身份证号码

亚历克斯,18,09848484841,0010

乔治,19,02987654321,0020

托尼,17,09277470257,0030

如何只显示姓名和年龄列及其行?

【问题讨论】:

    标签: vb.net csv datagridview


    【解决方案1】:

    如果您使用数据表,则可以将数据结构和集合放在一起。像这样:

        Dim sr As New IO.StreamReader(filename)
        Dim dt As New DataTable
        Dim newline() As String = sr.ReadLine.Split(","c)
        dt.Columns.AddRange({New DataColumn(newline(0)), _
                             New DataColumn(newline(1))})
        While (Not sr.EndOfStream)
            newline = sr.ReadLine.Split(","c)
            Dim newrow As DataRow = dt.NewRow
            newrow.ItemArray = {newline(0), newline(1)}
            dt.Rows.Add(newrow)
        End While
        DataGridView1.DataSource = dt
    

    【讨论】:

    • 这就是我在说的人!你说对了!谢谢你。你就是那个男人。
    • 嘿@tinstaff,当我使用此代码时,我收到“索引超出数组范围”的错误。在代码中 newrow.ItemArray = {newline(0), newline(1)}
    • @Aljie,如果 readline 读取的行没有至少 2 个用逗号分隔的字段,则换行数组将没有足够的索引。您可能需要一个条件来检查换行符的长度是否至少为 2。有时文件中会有空行。如果数据在写入文件之前没有经过严格验证,也会发生这种情况。
    【解决方案2】:

    使用具有与您要存储的数据匹配的属性的自定义类,并为使用的每一行数据创建该类的实例,然后使用 List(Of {custom class}) 来保存每个对象,并且 DGV 的 DataSource 属性可以在网格中查看集合。类中的属性名称将用作标题。

    【讨论】:

      猜你喜欢
      • 2014-02-13
      • 1970-01-01
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      • 2018-10-03
      • 2017-10-13
      • 1970-01-01
      • 2018-08-29
      相关资源
      最近更新 更多