Загрузка CSV в DataGridView - PullRequest
       4

Загрузка CSV в DataGridView

3 голосов
/ 21 июня 2011

Вот мой код для загрузки файла CSV в my DataGridView в моем приложении WinForms:

private void loadCSV(string path)
{
  if (!File.Exists(path))
  {
    MessageBox.Show(this, "File does not exist:\r\n" + path, "No File", MessageBoxButtons.OK, MessageBoxIcon.Stop);
    return;
  }

  try
  {
    string conStr = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=C:;Extensions=csv,txt";
    OdbcConnection conn = new OdbcConnection(conStr);
    OdbcDataAdapter da = new OdbcDataAdapter("Select * from " + path, conn);

    dt = new DataTable(path);
    da.Fill(dt);

    this.path = path;
    dataGridView.DataSource = dt;

    da.Dispose();
    conn.Close();
    conn.Dispose();
  }
  catch (Exception ex)
  {
    MessageBox.Show(this, "There was an error loading the CSV file:\r\n" + ex.Message, "IO Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return;
  }
}

Работает практически со всеми действительными файлами CSV, кроме файлов в папках с определенными символами.

например. это будет работать на

  • C: \ Users \ Public \ Desktop \ MyCSV.csv

но не для

  • C: \ Users \ Public \ Desktop \ My Folder \ MyCSV.csv

Кто-нибудь знает, как я могу это исправить? Я полагаю, мне нужно как-то дополнить констант.

1 Ответ

4 голосов
/ 21 июня 2011

Измените ваш оператор выбора на

OdbcDataAdapter da = new OdbcDataAdapter("Select * from [" + path + "]", conn);

Пробелы в имени файла будут списаны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...