Fernando Alday Godoy Fernando Alday Godoy - 11 months ago 80
MySQL Question

MySQL Load Data Infile

I want to import CSV file into MySQL database but I am getting an error.

This is my method for

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;
}
}


When I run the code my string cmd gets this:

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


And the error I get is this:


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 'c:\users\trabajo\documents\visual studio 2013\Projects\Zen
Hardware\Presentation'


I don't know what part of my cmd syntax is wrong.

Answer Source

when you are using an address that have space, must use single quotation (') before and after address like this:

"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;
   }
}

Please see the MySQL Manual Page entitled LOAD DATA INFILE Syntax.