Как импортировать массив строк в datagridview или Datatable? - PullRequest
0 голосов
/ 21 июня 2019

На VB.net Как импортировать массив данных в Datagridview или DataTable (или набор данных)?

Первоначально я хотел импортировать данные из файла xlsm в Datagridview или Datatable, хотяOleDbConnection, по-видимому, через «Provider = Microsoft.ACE.OLEDB.12.0; Data Source» имеет ограничение в 255 столбцов!и мои данные имеют около 3000 строк и 550 столбцов.

Поэтому я изменил подход к файлу .csv через «IO.File.ReadAllLines (path)», как видно из кода ниже, хотя я уверен,есть более быстрый и понятный способ кодирования, не могли бы вы помочь импортировать массив данных в Datagridview или DataTable (или набор данных)?

    Dim lines = IO.File.ReadAllLines(path)
    Dim tbl = New DataTable
    Dim colCount = lines.First.Split(","c).Length

    Dim Novalinha As Integer
    Novalinha = 0

    For i As Int32 = 1 To colCount
        tbl.Columns.Add(New DataColumn("Column_" & i, GetType(String)))
    Next

    'For Each linha In lines
    '    Dim Items As String() = linha.Split(",")
    '    For i = 0 To colCount - 1
    '        tbl.Columns.Item(0).DefaultValue = Items(i)
    '    Next i
    '    tbl.Rows.Add(1)
    'Next

        DataGridView1.ColumnCount = colCount + 1
        DataGridView1.RowCount = lines.Length

        Novalinha = 0
        For Each linha In lines
            Dim Items As String() = linha.Split(",")
            For i = 0 To colCount - 1
                DataGridView1.Item(i, Novalinha).Value = Items(i)
            Next
            Novalinha += 1
        Next

Мне удалось получить Datagridview всех данных,но я не могу понять, как использовать набор данных или набор данных.

1 Ответ

0 голосов
/ 21 июня 2019
For Each linha In lines
    Dim Items As String() = linha.Split(",")
    Dim newRow As DataRow = tbl.NewRow
    For i = 0 To colCount - 1
        newRow("Column_" & (i+1).ToString) = Items(i)
    Next i
    tbl.Rows.Add(newRow)
Next
tbl.AcceptChanges

Затем установите для источника данных вашего datagridview значение tbl

DatagridView1.DataSource = tbl

Удалить эти строки

'DataGridView1.ColumnCount = colCount + 1
'DataGridView1.RowCount = lines.Length

'Novalinha = 0
'For Each linha In lines
'    Dim Items As String() = linha.Split(",")
'    For i = 0 To colCount - 1
'        DataGridView1.Item(i, Novalinha).Value = Items(i)
'    Next
'    Novalinha += 1
'Next
...