c# 读取 csv 文件给出的路径无效

标签 c# csv oledb

我似乎无法使用以下连接字符串读取 .csv 文件:

var fileName = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "Uploads\\countrylist.csv");
string connectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}; Extended Properties=""text;HDR=YES;FMT=Delimited""", fileName);
OleDbConnection oledbConn = new OleDbConnection(connectionString);
oledbConn.Open();

它给出了以下错误:

'D:\arrgh\arrgh\Uploads\countrylist.csv' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.

我确认文件在那里。这里发生了什么?

最佳答案

好吧,我进一步挖掘了一下,似乎我的连接字符串是错误的。对于 CSV 文件,您无需指定实际文件名,而是指定它所属的目录,例如。

var fileName = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "Uploads\\");
string connectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}; Extended Properties=""text;HDR=YES;FMT=Delimited""", fileName);
OleDbConnection oledbConn = new OleDbConnection(connectionString);
oledbConn.Open();
var cmd = new OleDbCommand("SELECT * FROM [countrylist.csv]", oledbConn);

然后您在 SelectCommand 中指定文件名。多么奇怪的做事方式。它现在对我有用。

关于c# 读取 csv 文件给出的路径无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1458068/

相关文章:

sql - 使用 SQL 将文本文件导入通用数据库

c# - 在 C# 中初始化一个属性

C# Windsor CaSTLe with ASP.Net Web forms - 如何解析业务类库

matlab - 循环遍历matlab中文件夹中的文件

c# - 条件表达式中的数据类型不匹配 | Access 、OleDb、C#

c# - 将 csv 加载到 oleDB 中并将所有推断的数据类型强制为字符串

javascript - 自动完成文本框在单击文本框时不显示结果

c# - 获取点到几何体的距离

csv - 如何动态获取结构中的字段

python pandas - 应用于 csv 的函数不持久