Вот мой код для загрузки файла 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
Кто-нибудь знает, как я могу это исправить? Я полагаю, мне нужно как-то дополнить констант.