Экспорт datagridview в CSV-файл

Я работаю над приложением, которое будет экспортировать мой DataGridView с именем scanDataGridView в файл csv.

Нашел пример кода для этого, но не могу заставить его работать. Кстати, моя сетка данных не привязана к источнику.

Когда я пытаюсь использовать Streamwriter только для записи заголовков столбцов, все идет хорошо, но когда я пытаюсь экспортировать всю сетку данных, включая данные, я получаю исключение.

System.NullReferenceException: ссылка на объект не указывает на экземпляр объекта. в Scanmonitor.Form1.button1_Click(Отправитель объекта, EventArgs e)

Вот мой код, ошибка указана в следующей строке:

dataFromGrid = dataFromGrid + ',' + dataRowObject.Cells[i].Value.ToString();

//csvFileWriter = StreamWriter
//scannerDataGridView = DataGridView   

private void button1_Click(object sender, EventArgs e)
{
    string CsvFpath = @"C:\scanner\CSV-EXPORT.csv";
    try
    {
        System.IO.StreamWriter csvFileWriter = new StreamWriter(CsvFpath, false);

        string columnHeaderText = "";

        int countColumn = scannerDataGridView.ColumnCount - 1;

        if (countColumn >= 0)
        {
            columnHeaderText = scannerDataGridView.Columns[0].HeaderText;
        }

        for (int i = 1; i <= countColumn; i++)
        {
            columnHeaderText = columnHeaderText + ',' + scannerDataGridView.Columns[i].HeaderText;
        }


        csvFileWriter.WriteLine(columnHeaderText);

        foreach (DataGridViewRow dataRowObject in scannerDataGridView.Rows)
        {
            if (!dataRowObject.IsNewRow)
            {
                string dataFromGrid = "";

                dataFromGrid = dataRowObject.Cells[0].Value.ToString();

                for (int i = 1; i <= countColumn; i++)
                {
                    dataFromGrid = dataFromGrid + ',' + dataRowObject.Cells[i].Value.ToString();

                    csvFileWriter.WriteLine(dataFromGrid);
                }
            }
        }


        csvFileWriter.Flush();
        csvFileWriter.Close();
    }
    catch (Exception exceptionObject)
    {
        MessageBox.Show(exceptionObject.ToString());
    }
16
задан PandaNL 30 March 2012 в 13:38
поделиться