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
Solved

View a csv file using a datagridview error

Posted on 2008-10-10
3
245 Views
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:

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

0
Comment
Question by:daruffin
  • 2
3 Comments
 
LVL 11

Accepted Solution

by:
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
0
 

Author Comment

by:daruffin
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, ",")

                dt.Rows.Add(SplitLine)

                Me.DataGridView1.DataSource = dt.DefaultView

 

            Loop

 

        Else

 

            MsgBox("File Does Not Exist")

 

        End If

0
 

Author Closing Comment

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

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