View a csv file using a datagridview error

I have this code and every time I run this code I get a error at this line of Code:

Me.DataGridView1.Rows.Add(SplitLine)
 Error: No row can be added to a DataGridView control that does not have columns. Columns must be added first.

I have attached the csv file I'm trying to view in a datagridview

Dim fName As String = ""
 
        OpenFileDialog1.InitialDirectory = "c:\temp\"
 
        OpenFileDialog1.Filter = "CSV files (*.csv)|*.CSV"
 
        OpenFileDialog1.FilterIndex = 2
 
        OpenFileDialog1.RestoreDirectory = True
 
        If (OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK) Then
 
            fName = OpenFileDialog1.FileName
 
        End If
 
 
 
        Dim TextLine As String = ""
 
        Dim SplitLine() As String
 
 
 
        If System.IO.File.Exists(fName) = True Then
 
            Dim objReader As New System.IO.StreamReader(fName)
 
            Do While objReader.Peek() <> -1
 
                TextLine = objReader.ReadLine()
 
                SplitLine = Split(TextLine, ",")
 
                Me.DataGridView1.Rows.Add(SplitLine)
 
            Loop
 
        Else
 
            MsgBox("File Does Not Exist")
 
        End If

Open in new window

daruffinAsked:
Who is Participating?
 
ladarlingCommented:
The datagridview requires columns, it cant infer generic columns from arrays. Instead of trying to directly add the array to the dgv, add it to a datatable first (which can infer columns). Something like:

Dim dt As New DataTable("myTable") 'declare this in classwide scope

dt.Rows.Add(SplitLine) 'Loop over this

DataGridView1.DataSource = dt.AsDataView 'Finish up with this
0
 
daruffinAuthor Commented:
Error Input array is longer than the number of columns in this table

If System.IO.File.Exists(fName) = True Then

            Dim dt As New DataTable("Time")

 

            Dim objReader As New System.IO.StreamReader(fName)

 

            Do While objReader.Peek() <> -1

 

                TextLine = objReader.ReadLine()

 

                SplitLine = Split(TextLine, ",")

                dt.Rows.Add(SplitLine)

                Me.DataGridView1.DataSource = dt.DefaultView

 

            Loop

 

        Else

 

            MsgBox("File Does Not Exist")

 

        End If

0
 
daruffinAuthor Commented:
I got it to work and readlly thank you for your help
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.