Reputation: 41
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
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