用于读取utf-8文件夹中csv的连接字符串

问题描述 投票:0回答:1

我是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文件夹的情况下选择CSV文件,例如[C:\ Users \ nmhoan \ Desktop \ New文件夹,则以上代码工作正常。但是,如果我在UTF-8文件夹中选择文件,例如:Desktop \Vẽ布局,则会收到一条消息:

System.Data.OleDb.OleDbException:``C:\ Users \ nmhoan \ Desktop \Vẽlayout \'不是有效的路径。确保路径名拼写正确正确,并且您已连接到文件所在的服务器居住。'

我花了很多时间来找到解决方案,但仍然无法解决。请帮助我解决此问题。

感谢您的赞赏

c# csv connection-string
1个回答
0
投票
如果要读取CSV文件,则不应为此目的使用Excel,因为它非常麻烦(例如必须将其安装在程序运行的计算机上,错误地将数字解释为日期,难以使用正确地,更改值是一团糟,等等。而是使用能够读取和写入CSV文件的专用库。有很多C#代码,但我个人更喜欢CsvHelper
© www.soinside.com 2019 - 2024. All rights reserved.