我想将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语法的哪一部分是错误的。
答案 0 :(得分:4)
当您使用有空格的地址时,必须在地址之前和之后使用单引号('),如下所示:
" 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','由' \ 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手册页。