Fernando Alday Godoy Fernando Alday Godoy - 1 month ago 18
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

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.

Comments