5
Answers

Open CSV into Datagridview

mike Delvotti

mike Delvotti

9y
837
1
Guys,

I'm trying to load a CSV into my datagridview and it nearly works, apart from the following error thrown: Input array is longer than the number of columns in this table.

On this line: dataset.Tables[tablename].Rows.Add(items);

Below is my event code am I missing something else from the above line?

                string delimiter = ",";
                string tablename = "Table";
                DataSet dataset = new DataSet();
                OpenFileDialog openFileDialog1 = new OpenFileDialog();
                openFileDialog1.Filter = "CSV Files (*.csv)|*.csv|All Files (*.*)|*.*";
                openFileDialog1.FilterIndex = 1;
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        filename = openFileDialog1.FileName;
                        StreamReader sr = new StreamReader(filename);
                        string csv = File.ReadAllText(openFileDialog1.FileName);
                        dataset.Tables.Add(tablename);
                        dataset.Tables[tablename].Columns.Add("Stock Number");
                        dataset.Tables[tablename].Columns.Add("Order Number");


                        string allData = sr.ReadToEnd();
                        string[] rows = allData.Split("\r".ToCharArray());

                        foreach (string r in rows)
                        {
                            string[] items = r.Split(delimiter.ToCharArray());
                            dataset.Tables[tablename].Rows.Add(items);
                        }
                        this.dataGridView1.DataSource = dataset.Tables[0].DefaultView;
                      }
            }

        public string filename { get; set; }

Answers (5)