Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

View a csv file using a datagridview error

Posted on 2008-10-10
Last Modified: 2012-05-05
I have this code and every time I run this code I get a error at this line of Code:

 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, ",")
            MsgBox("File Does Not Exist")
        End If

Open in new window

Question by:daruffin
  • 2
LVL 11

Accepted Solution

ladarling earned 250 total points
ID: 22687908
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

Author Comment

ID: 22688297
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, ",")


                Me.DataGridView1.DataSource = dt.DefaultView






            MsgBox("File Does Not Exist")


        End If


Author Closing Comment

ID: 31505037
I got it to work and readlly thank you for your help

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question