使用c#使用加载数据本地infile时出错

时间:2014-01-23 13:39:00

标签: c# mysql

我在csv中尝试使用load data infile语法导入此文件。但我在语法中遇到了这个错误。 我尝试了所有的事情,但没有运气。任何帮助都会受到赞赏。

string strLoadData = "LOAD DATA LOCAL  INFILE 'C:/xampp/htdocs/explortest.csv' INTO  test.tickets FIELDS  terminated by ',' ENCLOSED BY '\"'  lines terminated by '\r\n' ignore 1 lines  ";

ERROR

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'test.tickets FIELDS  terminated by ',' ENCLOSED BY '"'  lines terminated by '
'' at line 1

3 个答案:

答案 0 :(得分:1)

string strLoadData = "...";

C#编译器将在 strLoadData 中查找转义序列,并用特殊字符替换它们。因此,您的\r\n将被C#解释为“新行”和“换行”字符。但是你需要MySQL来读取“\ r \ n”而不是“ new line ”和“ line fead ”字符 - 来应用它自己的转义序列解释。

长话短说:将\r\n替换为\\r\\n

答案 1 :(得分:0)

在INTO之后添加TABLE

LOAD DATA LOCAL  INFILE 'C:/xampp/htdocs/explortest.csv' 
INTO TABLE test.tickets FIELDS  terminated by ',' ENCLOSED BY '\"'  lines terminated by '\r\n' ignore 1 lines 

答案 2 :(得分:0)

检查行终止文件中的字符。你确定是\r\n吗?也许您的文件中有\n\r作为行终止。

您可以阅读更多here。我正在复制以下页面的一部分:

  

注意

     

如果您在Windows系统上生成了文本文件,则可能必须使用LINES TERMINATED BY'\ r \ n'来正确读取文件,因为Windows程序通常使用两个字符作为行终止符。某些程序(如写字板)在编写文件时可能会使用\ r作为行终止符。要读取此类文件,请使用LINES TERMINATED BY'\ r'。