2017-08-24 83 views
0

當我試圖從txt文件插入數據到mysql表中時,我收到了這個錯誤。我嘗試了整個列表,只有一個項目,使用csv,甚至刪除了「」,並創建一個只有一個字段的新表格,但問題在30秒後仍在繼續。在我的txt中有一個我需要在表格的1個字段中插入的數字列表,儘管表格有三個不同的字段。先謝謝你。嘗試讀取結果集時遇到致命錯誤。 MySQL Asp.Net

protected void Button1_Click(object sender, EventArgs e) 
{ 
    if (FileUploadControl.HasFile) 
    { 
     try 
     { 
      if (FileUploadControl.PostedFile.ContentType == "text/plain") 
      { 

       string filename = Path.GetFileName(FileUploadControl.FileName); 
       FileUploadControl.SaveAs(Server.MapPath("~/") + filename); 
       StatusLabel.Text = "Upload status: File, "+filename+" uploaded!"; 
       string dir = Server.MapPath("~/") + filename; 
       string strcon = "SERVER = 000.000.000.00; " + "DATABASE=fakedb;" + "UID=fakeid;" +"PASSWORD=fakepass;"; 
       Response.Write(dir); 
       MySqlConnection con = new MySqlConnection(strcon); 
       con.Open(); 
       MySqlCommand cmd = new MySqlCommand("LOAD DATA LOCAL INFILE '" + filename + "' INTO TABLE Cuenta_Test LINES TERMINATED BY '\n\r'", con); 
       cmd.ExecuteNonQuery(); 
       con.Close(); 
      } 
      else 
       StatusLabel.Text = "Upload status: Only txt files are accepted!"; 
     } 
     catch (Exception ex) 
     { 
      StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message; 
     } 
    } 
} 

回答

0

看起來你的MySqlCommand命令文本不正確。它應該是這樣的(請注意,你需要使用雙反斜線\\,而不是單反斜線\,使C#不治療行終止爲轉義序列,它用於MySQL命令字符串):

MySqlCommand cmd = new MySqlCommand("LOAD DATA LOCAL INFILE '" + filename + "' INTO TABLE Cuenta_Test LINES TERMINATED BY '\\n\\r'", con); 

或者使用命令文本與string.Format &這樣的文本字符串:

MySqlCommand cmd = new MySqlCommand(string.Format(@"LOAD DATA LOCAL INFILE '{0}' INTO TABLE Cuenta_Test LINES TERMINATED BY '\n\r'", filename), con); 

注意:您也可以閱讀CSV文件&保存其內容到數據庫時,使用FIELDS TERMINATED BY ','作爲字段分隔符。

其他建議你可以做,以確保成功加載數據命令:

1)儘量在MySQL Workbench中運行相同的命令。檢查不正確的數據類型錯誤。

2)使用CommandTimeout屬性增加命令超時:

cmd.CommandTimeout = 120; // 2 minutes (example) 

3)寫入到數據庫之前歸一化的文本文件的行尾。 \n\r轉義不同於\r\n(利用Replace,可能使用轉義序列正則表達式)。

相關問題