我試過使用OleDb接口來讀取CSV文件,但我注意到一些奇怪的東西。在使用Microsoft.Jet.OLEDB.4.0提供程序閱讀時,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提供商的一個已知問題?
它在什麼位置拋出異常? –
在執行調用程序調用時引發錯誤... – deostroll