2

尝试将 CSV 文件加载到 MySQL 数据库中,我得到了运行时间

Fatal error encountered attempting to read the resultset. 

类似的问题在四月份被问到这里。我没有看到任何回复,但希望其他人已经看到了。这是来自调试器的命令:

"LOAD DATA LOCAL INFILE 'D:\\SANCentral\\Customer Files\\ibm\\70738\\0918\\Switch 
Port.csv' INTO TABLE By_Switch FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\\r\\n' IGNORE 1 LINES"

这是 C# 代码:

string ConnectionString =  String.Format(@"server={0};userid={1};
        password={2};database={3}", server, user, passwd, database);
        MySqlConnection sqlconnect = new MySqlConnection(ConnectionString);
        sqlconnect.Open();
        IEnumerable<FileInfo> files = this.InputFileListView.Items.Cast<FileInfo>();
        string commandstring = String.Format(@"LOAD DATA LOCAL INFILE '{0}' INTO TABLE {1} FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' IGNORE 1 LINES", 
                                                files.FirstOrDefault().ToString(), "By_Switch");
        MySqlCommand cmd = new MySqlCommand(commandstring,sqlconnect);
        cmd.ExecuteNonQuery();

我已验证数据库中的列名与传入 CSV 文件中的列名匹配。

4

1 回答 1

2

所以我想通了。我使用 MySQL Workbench 运行相同的加载命令。MySQL 更能描述这些问题。首先,我在表中的列上有一个不正确的数据类型。接下来,显然如果你说一行以 \n 结尾,但它以 \r\n 结尾,那就是一个问题。在这个文件中,似乎有 \r\n 和 \n 的混合。所以我想我必须在加载文件之前规范化行尾。最后,缺少一些实际数据值,因此您会得到带有 , 的行。我不知道该怎么做。

于 2012-09-21T21:08:29.393 回答