2017-08-24 160 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,可能使用转义序列正则表达式)。

相关问题