Fernando Alday Godoy
Fernando Alday Godoy

Reputation: 41

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.

Upvotes: 2

Views: 3957

Answers (1)

Masood
Masood

Reputation: 189

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.

Upvotes: 4

Related Questions