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

系统。数据OleDb。OleDbException:"C:\Users\nmhoan\Desktop\Vẽlayout"不是有效的路径。确保路径名拼写正确正确,并且您已连接到文件所在的服务器">

我花了很多时间寻找解决方案,但仍然无法修复。请帮我解决这个问题。

非常感谢

如果你想读取CSV文件,你不应该为此目的使用Excel,因为它有很多麻烦(比如它必须安装在运行程序的机器上,错误地将数字解释为日期,很难正确使用,更改值是一团糟,等等(。相反,使用能够读取和写入CSV文件的专用库。C#有很多,但我个人更喜欢CsvHelper。

最新更新