MySQL加载数据Infile

时间:2015-07-21 07:35:37

标签: c# mysql

我想将CSV文件导入MySQL数据库但我收到错误。

这是LOAD DATA INFILE的方法:

public int Import(string path)
{
   try
   {
      string cmd = "LOAD DATA INFILE " + path + " INTO TABLE zen_hardware.products FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'";

      int a = MySqlHelper.ExecuteNonQuery(conn.Connect(),cmd);

      return a;
   }
   catch
   {
      return -1;
   }
}

当我运行代码时,我的字符串cmd得到了这个:

"LOAD DATA INFILE c:\\users\\trabajo\\documents\\visual studio 2013\\Projects\\Zen Hardware\\Presentation\\Tarjetas de Video.csv INTO TABLE zen_hardware.products FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'"

我得到的错误是:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近&c; \ users \ trabajo \ documents \ visual studio 2013 \ Projects \ Zen   硬件\演示'

我不知道我的cmd语法的哪一部分是错误的。

1 个答案:

答案 0 :(得分:4)

当您使用有空格的地址时,必须在地址之前和之后使用单引号('),如下所示:

" LOAD DATA INFILE' c:\ users \ trabajo \ documents \ visual studio 2013 \ Projects \ Zen Hardware \ Presentation \ Tarjetas de Video.csv' INTO TABLE zen_hardware.products FIELDS TERMINATED BY','由' \ n'"

终止的线路
public int Import(string path)
{
   try
   {
      string cmd = "LOAD DATA INFILE '" + path + "' INTO TABLE zen_hardware.products FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'";
      int a = MySqlHelper.ExecuteNonQuery(conn.Connect(),cmd);
      return a;
   }
   catch
   {
      return -1;
   }
}

请参阅名为LOAD DATA INFILE Syntax的MySQL手册页。