c# - 在 utf-8 文件夹中读取 csv 的连接字符串
问题描述
我是 C# 新手,将数据从 CSV 上传到数据库时遇到问题,请帮助我
我想允许操作员通过使用类 OpenFileDialog 选择灵活目录中的 CSV 文件,如下所示:
OpenFileDialog dlg = new OpenFileDialog();
...
filename = dlg.FileName;// get full path of selected file
string fileDirectory = Path.GetDirectoryName(filename); //get directory
string excelConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"" + fileDirectory + "\\\";Extended Properties=\"text;FMT=Delimited;HDR=Yes;CHARSET=65001;\""; //connection
using(OleDbConnection ExcelConnection = new OleDbConnection(excelConnStr);)
{
string csvFiename = Path.GetFileName(filename);
string excelQR = "select * from ["+ csvFiename + "]";
...
}
如果我在无 UTF-8 文件夹例如 C:\Users\nmhoan\Desktop\New 文件夹中选择 CSV 文件,上面的代码工作正常。但是,如果我在 UTF-8 文件夹中选择文件,例如:Desktop\Vẽ 布局,我会收到一条消息:
System.Data.OleDb.OleDbException: ''C:\Users\nmhoan\Desktop\Vẽ layout\' 不是有效路径。确保路径名拼写正确,并且您已连接到文件所在的服务器。
我花了很多时间寻找解决方案,但仍然无法解决。请帮我解决这个问题。
非常感谢你
解决方案
如果您想读取 CSV 文件,则不应为此目的使用 Excel,因为它非常麻烦(例如必须将其安装在运行程序的机器上,将数字错误解释为日期,难以正确使用,改变价值观是一团糟,等等)。而是使用能够读取和写入 CSV 文件的专用库。C# 有很多,但我个人更喜欢CsvHelper。
推荐阅读
- javascript - NW.js - nwbuild 未在 Windows 上打开
- scala - 您将 assemblyMergeStrategy 放在 build.sbt 的什么位置?
- java - FluentProducerTemplate 上的 ClosedChannelException 与 Apache Camel
- python-2.7 - Spark DataFrame ArrayType 或 MapType 用于检查列中的值
- python - 我如何强制使用要使用的单个 python 路径?
- c# - 为 Azure blob 容器构造树对象
- javascript - 即使两个表达式都为真,if 语句也会被跳过
- javascript - 如何过滤搜索输入以在 JQUERY 中显示正确的自动完成功能?
- oracle-apex - oracle apex 18.2 自定义身份验证和授权
- amazon-web-services - 如何更改自定义 AWS IAM 策略的描述?