Проблема с загрузкой CSV-файла в datagridview
Приведенный ниже код я использовал для того, чтобы при нажатии на кнопку содержимое CSV-файла загружалось в DataGridView. Однако, когда я нажимаю кнопку, печатается только одна строка, а остальные не печатаются, даже если я нажму ее снова.
Я не уверен, в чем заключается проблема, некоторая помощь была бы признательна
Спасибо
Что я уже пробовал:
Private Sub btnLoadDGVGeneral_Click(sender As Object, e As EventArgs) Handles btnLoadDGVGeneral.Click dataGVGeneral.Rows.Clear() Try 'New Variable: fname, represents File Path of CSV as String Dim fname As String = "E:\SAT\Work.io\Work.io\bin\Debug\ListofTasks.csv" Dim reader As New StreamReader(fname, Encoding.Default) Dim sline As String = "" Dim colsexpected As Integer = 7 Dim r As Integer = 0 sline = reader.ReadLine Do sline = reader.ReadLine If sline Is Nothing Then Exit Do Dim details() As String = sline.Split(",") dataGVGeneral.Rows.Add() For i As Integer = 0 To 7 dataGVGeneral.Rows(r).Cells(i).Value = details(i) Next r = r + 1 Loop reader.Close() Catch ex As Exception End Try End Sub
0x01AA
Я предполагаю первое sline = reader.ReadLine
перед циклом нужно пропустить информацию о заголовке столбца в csv-файле. Итак, вопрос: действительно ли в csv есть более 1 строки данных?
Shaheer Rizwan
да, на самом деле в CSV-файле есть еще 13 строк. Я понятия не имею, почему он не печатает остальное
0x01AA
Поэтому я предлагаю использовать отладчик и пройти через код.
0x01AA
Что произойдет, если вы прокомментируете материал "попробуй поймать"?
Shaheer Rizwan
Я запустил его без всяких попыток и вот что вышло https://imgur.com/a/a7hUv17
0x01AA
Таким образом, он показывает вам детали() длиной 7. К сожалению, я не вижу, на какой линии. Но в любом случае, потому что вы жестко закодировали цикл "от 0 до 7", это было бы проблемой (строка в csv не имеет 8 полей.
Попробуйте что-то вроде этого (я не знаю VB)For i As Integer = 0 To details.Length - 1