В настоящее время я работаю над проектом класса для создания программы чтения CSV в C#. Я столкнулся с ошибками при попытке прочитать данные и прочитать предыдущие сообщения о попытке переопределить задачу MaxScanRows
. Я решил включить в программу запись схемы, которая будет записывать схему в точке считывания csv в представление сетки данных.
При попытке отладки кода консоль выводит следующее:
'TSP GUI.exe' (CLR v4.0.30319: TSP GUI.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Transactions\v4.0_4.0.0.0__b77a5c561934e089\System.Transactions.dll'.
Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Exception thrown: 'System.Data.OleDb.OleDbException' in System.Data.dll
Код:
public DataTable ReadCsv(string csvFileName)
{
DataTable dt = new DataTable();
try
{
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"" +
Path.GetDirectoryName(csvFileName) + "\";Extended Properties='text;HDR=Yes;IMEX=1;FMT=Delimited(,)';"))
{
using (OleDbCommand cmd = new OleDbCommand(string.Format("select *from [{0}]", new FileInfo(csvFileName).Name), conn))
{
conn.Open();
using (OleDbDataAdapter obj_oledb_da = new OleDbDataAdapter(cmd))
{
DataTable dtSchema = new DataTable();
obj_oledb_da.FillSchema(dtSchema, SchemaType.Source);
if (dtSchema != null)
{
writeSchema(dtSchema);
}
obj_oledb_da.Fill(dt);
}
}
}
}
catch
{
MessageBox.Show("Error occured");
}
return dt;
}
Исключение выдается при выполнении conn.open();
.
Спасибо за редактирование и передачу мне указания,
Еще один вариант это решит мою проблему - это расширенные свойства строки подключения. Я просто не знаю, что нужно сделать, чтобы CSV мог быть прочитан со всеми строками, так как файл csv в основном содержит цифры в строке, но редко содержит комбинацию буквенно-цифровых символов.