用C#将csv文件导入mysql报错:No such file or directory

问题遇到的现象和发生背景

我把csv文件放在了项目的debug下

img

csv文件如下所示:

img

问题相关代码
private void btn_LoadCSV_Click(object sender, EventArgs e)
        {
            CreatedMysqlTable();    //创建表test

            //读取CSV文件
            MySqlBulkLoader bulkLoader = new MySqlBulkLoader(msc);
            bulkLoader.TableName = "test"; //插入的表的名字

            OpenFileDialog file = new OpenFileDialog();
            file.ShowDialog();
            string fullname = file.FileName;
            //string path = System.IO.Path.GetDirectoryName(fullname);
            //string name = System.IO.Path.GetFileName(fullname);
            bulkLoader.FileName = fullname; //路径

            //bulkLoader.FileName = Environment.CurrentDirectory + "\\" + "test.csv";

            bulkLoader.FieldTerminator = ","; //字段间的间隔方式 This can be { comma,tab,semi colon, or other character}
            bulkLoader.LineTerminator = "\n";
            int count = bulkLoader.Load();  //执行
        }

运行结果及报错内容

img

“MySql.Data.MySqlClient.MySqlException”类型的未经处理的异常在 MySql.Data.dll 中发生
File 'D:\Work\研究生\CS与MySQL\Mysql\Mysql\bin\Debug\test.csv' not found (OS errno 2 - No such file or directory)

img

辛苦各位帮忙解决了!

MySQLBulkLoader 使用LOAD DATA INFILE 指令导入数据,所以不能用中文路径和文件名

这个错就是找不到文件,
你可以把文件先拷贝到一个别的目录试下尽量不要使用中文做为路径

给你个调试方法吧,在尝试读取某个磁盘文件前,先用代码判断该文件的状态

bulkLoader.FileName用以下路径

bulkLoader.FileName = "D:\\Work\\研究生\\CS与MySQL\\Mysql\\Mysql\\bin\\Debug\\test.csv";

解决方案,如图:

img