2015-07-21 119 views
1

我想導入CSV文件到MySQL數據庫,但我得到一個錯誤。MySQL加載數據Infile

這是我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:\用戶\特拉瓦霍\文件\的Visual Studio 2013 \項目\禪 五金\演示」

我不不知道我的cmd語法的哪一部分是錯誤的。 C:

+1

結果命令應該如下所示: 「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'「 –

回答

3

,當你使用的是有空間的地址,必須'

「LOAD DATA INFILE前和這樣的地址後,使用單引號()」:\用戶\特拉瓦霍\文件\的Visual Studio 2013 \項目\禪五金\演示\ Tarjetas德Video.csv 'INTO TABLE zen_hardware.products TERMINATED田野',」 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; 
    } 
} 

請參閱題爲LOAD DATA INFILE Syntax MySQL的手冊。

+1

謝謝你的工作:D –