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プロバイダーの既知の問題ですか?