2013-02-21 51 views
0

当试图创建一个字符串来保存以下查询以将CSV文件导入到MySql时,查询本身会制动我尝试创建的字符串。sql查询字符串中的双重qoutes

string Query = "load data local infile" + " " + "'" + Filename + "'" + " " + "into table" + " " + Table + "'FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES"; 

有没有关于ENCLOSED BY '"'部件的事情?

感谢

+1

用反斜杠'“\逃吧...“”不要忘了一个空间FIELDS TERMINATED' – 2013-02-21 16:41:11

回答

0

如果能帮助任何人,可以通过以下方法解决问题。

public static void MySqlCSVImport(string Filename, string Table, string Server, string Database, string User, string Password, string Port) 
     { 
      try 
      { 
       //enclosed by '"' 
       string FixFilePath = Filename.Replace(@":\", ":\\"); 
       string c = "'" + "\\n" + "'"; 
       string d = ";"; 

       string connectionString = "server=" + Server + ";database=" + Database + ";User Id=" + User + ";password=" + Password + ""; 
       MySqlConnection mySqlConnection = new MySqlConnection(connectionString); 
       mySqlConnection.Open(); 

       string Query = "load data local infile" + " " + "'" + FixFilePath + "'" + " " + "into table" + " " + Table + " FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY" + " " + c + d; 

       MySqlCommand cmd = new MySqlCommand(Query, mySqlConnection); 

       cmd.ExecuteNonQuery(); 

      } 

      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 
0

你需要逃避使用\双引号字符:"\""

string Query = "load data local infile" + " " + "'" + Filename + "'" + " " + "into table" + " " + Table + "' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES"; 
+0

必须失去了一些东西之前',我得到{”您的SQL语法错误;请检查与您的MySQL服务器版本对应的手册,以便在'FIELDS TERMINATED BY','ENCLOSED BY'\''LINES TERMINATED BY'\ n'IGNORE 1 LINES'line 1'附近使用正确的语法“} – needmorebeerformewallaby 2013-02-21 16:45:06

+0

OK,你可以在执行它之前提供最终的SQL字符串吗? – sdespont 2013-02-21 17:07:47

0

这是完整的方法。

public static void MySqlCSVImport(string Filename, string Table, string Server, string Database, string User, string Password) 
     { 
      try 
      { 
       //enclosed by '"' 
       string connectionString = "server=" + Server + ";database=" + Database + ";User Id=" + User + ";password=" + Password + ""; 
       MySqlConnection mySqlConnection = new MySqlConnection(connectionString); 
       mySqlConnection.Open(); 

       string Query = "load data local infile" + " " + "'" + Filename + "'" + " " + "into table" + " " + Table + "' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES"; 

       MySqlCommand cmd = new MySqlCommand(Query, mySqlConnection); 

       cmd.ExecuteNonQuery(); 

      } 

      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     }