C# 尝试读取结果集时遇到致命错误。MySQL Asp.Net

C# 尝试读取结果集时遇到致命错误。MySQL Asp.Net,c#,mysql,asp.net,C#,Mysql,Asp.net,当我试图将txt文件中的数据插入mysql表时,我收到了这个错误。我尝试使用整个列表,仅使用1项,使用csv,甚至删除“”并创建一个仅使用一个字段的新表,但问题在30秒后继续发生。在我的txt中有一个数字列表,我需要在表的1个字段中插入这些数字,即使表有三个不同的字段。先谢谢你 protected void Button1_Click(object sender, EventArgs e) { if (FileUploadControl.HasFile) { tr

当我试图将txt文件中的数据插入mysql表时,我收到了这个错误。我尝试使用整个列表,仅使用1项,使用csv,甚至删除“”并创建一个仅使用一个字段的新表,但问题在30秒后继续发生。在我的txt中有一个数字列表,我需要在表的1个字段中插入这些数字,即使表有三个不同的字段。先谢谢你

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;
        }
    }
}

您的
MySqlCommand
命令文本似乎不正确。它应该是这样的(请注意,您需要使用双反斜杠
\\
而不是单反斜杠
\
,以便C不将行终止符视为转义序列,它用于MySQL命令字符串):

MySqlCommand cmd=new MySqlCommand(“将数据本地填充“+filename+””加载到以“\\n\\r”结尾的表Cuenta\u测试行中,con);
或者将命令文本与
字符串一起使用。格式如下所示:

MySqlCommand cmd=new MySqlCommand(string.Format(@“将数据本地填充“{0}”加载到以“\n\r”结尾的表Cuenta_测试行中),con);
注意:在读取CSV文件并将其内容保存到数据库时,您还可以使用以“,”结尾的
字段作为字段分隔符

为确保成功加载数据命令,可以执行的其他建议:

1) 尝试在MySQL工作台中运行相同的命令。检查不正确的数据类型错误

2) 使用
CommandTimeout
属性增加命令超时:

cmd.CommandTimeout=120;//2分钟(示例)
3) 在写入数据库之前规范化文本文件的行尾<代码>\n\r
转义与
\r\n
不同(使用
替换
,可能使用转义序列regex)