Я пытался использовать интерфейсы OleDb для чтения CSV-файла, но заметил кое-что странное.
var filePath = @"C:\set2\orders3_1.csv";
var fileDirPath = Path.GetDirectoryName(filePath);
SqlBulkCopy bcp = new SqlBulkCopy("Data Source=.; Initial Catalog=indexer; Integrated Security=SSPI");
OleDbConnection cxn = new OleDbConnection();
cxn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='text;HDR=Yes;FMT=Delimited(,)';Data Source=" + fileDirPath;
OleDbCommand cmd = cxn.CreateCommand();
cmd.CommandText = string.Format("Select [OrderNumber] from [{0}]", Path.GetFileName(filePath));
cxn.Open();
var rdr = cmd.ExecuteReader();
bcp.DestinationTableName = "PersonTable";
bcp.WriteToServer(rdr);
rdr.Close();
cxn.Close();
Когда я помещаю имя файла как orders3_1.csv
, оно читается нормально. Но когда я изменяю имя файла на orders3.1.csv
, код сталкивается с исключением, говорящим, что он не может найти файл...
Это известная проблема с поставщиками JET?