【问题标题】:MySQL Load Data InfileMySQL 加载数据文件
【发布时间】:2015-07-21 07:35:37
【问题描述】:

我想将 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 语法的哪一部分是错误的。

【问题讨论】:

  • 结果命令应如下所示: "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'"

标签: c# mysql


【解决方案1】:

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

"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'"

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 手册页。

【讨论】:

    猜你喜欢
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    相关资源
    最近更新 更多