C#Mysql出现致命错误

C#Mysql出现致命错误,c#,mysql,load-data-infile,C#,Mysql,Load Data Infile,该脚本在工作台上运行良好,但当我在C#中使用它时,我得到“在命令执行过程中遇到致命错误” 我看不出错误,但我相信是通过“@” 当我执行下面的脚本时,它可以工作: Cmd.CommandText = "LOAD DATA LOCAL INFILE '//10.5.0.2/c$/dhcp.txt' INTO TABLE temp_update_table FIELDS TERMINATED BY ';' LINES TERMINATED BY '\\n' IGNORE 1 LINES;"; 但当我

该脚本在工作台上运行良好,但当我在C#中使用它时,我得到“在命令执行过程中遇到致命错误”

我看不出错误,但我相信是通过“@”

当我执行下面的脚本时,它可以工作:

Cmd.CommandText = "LOAD DATA LOCAL INFILE '//10.5.0.2/c$/dhcp.txt' INTO TABLE temp_update_table FIELDS TERMINATED BY ';' LINES TERMINATED BY '\\n' IGNORE 1 LINES;";
但当我结束时,它会生成错误“在命令执行期间遇到致命错误”:

我正在用MySQL数据库构建一个.NET C#应用程序,我也不断遇到错误消息:

“执行命令时遇到致命错误。”

从我的.NET应用程序调用“loaddatainfle”MySQL命令时。很难找到解决方案,所以我想在这里用对我有效的解决方案来回应。最后,经过几天的阅读,我找到了关于这个问题的所有信息(包括这篇文章),我终于解决了它……而解决方案无论如何都不是直观的,结果是两个不同的问题

我发现的第一个修复方法是,当在内嵌中使用变量时,需要将以下语句添加到连接字符串中(信不信由你):

因此,这意味着您的完整连接字符串应该如下所示:

"server=127.0.0.1;uid=user;pwd=password;database=mysql_db_name;Allow User Variables=True"
这让我很惊讶,但似乎奏效了!!我在这里找到了解决方案:

然而,在我修改了连接字符串之后,尽管大多数输入文件开始为我工作,但我仍然间歇性地收到此错误消息。我会得到一些输入文件的错误消息“在命令执行过程中遇到致命错误”,而不是其他文件??在阅读了更多的内容并玩弄了一些东西之后,这似乎是连接超时的问题(或者类似的奇怪问题),即使错误消息没有说明连接超时。通过增加C#中数据库“MySqlCommand”对象的“CommandTimeout”属性,我可以阻止错误消息弹出,并将数据文件正确导入MySQL,如下所示:

mysqlCommand.CommandTimeout = 600;
string strConnect = "server=127.0.0.1;uid=user;pwd=password;database=mysql_db_name;Allow User Variables=True";
Using (MySqlConnection mysqlConnection = new MySqlConnection(strConnect))
{
    Using (MySqlCommand mysqlCommand = new MySqlCommand())
    {
        mysqlCommand.CommandTimeout = 600;
        mysqlCommand.Connection = mysqlConnection;
        mysqlCommand.CommandType = CommandType.Text;

        mysqlCommand.CommandText = "LOAD DATA INFILE (...your specific command here)";

        try
        {
            mysqlConnection.Open();
            mysqlCommand.ExecuteNonQuery();
            mysqlConnection.Close();
        }
        catch(Exception ex)
        {
            // handle errors
        }
    }
}
因此,完整的代码如下所示:

mysqlCommand.CommandTimeout = 600;
string strConnect = "server=127.0.0.1;uid=user;pwd=password;database=mysql_db_name;Allow User Variables=True";
Using (MySqlConnection mysqlConnection = new MySqlConnection(strConnect))
{
    Using (MySqlCommand mysqlCommand = new MySqlCommand())
    {
        mysqlCommand.CommandTimeout = 600;
        mysqlCommand.Connection = mysqlConnection;
        mysqlCommand.CommandType = CommandType.Text;

        mysqlCommand.CommandText = "LOAD DATA INFILE (...your specific command here)";

        try
        {
            mysqlConnection.Open();
            mysqlCommand.ExecuteNonQuery();
            mysqlConnection.Close();
        }
        catch(Exception ex)
        {
            // handle errors
        }
    }
}
读了这篇文章后,我发现了一个特别的解决方案:

不管怎样,我想这就是我解决问题所需要做的一切。希望这些信息对你也有帮助。祝你好运和快乐

我正在用MySQL数据库构建一个.NET C#应用程序,我也不断遇到错误消息:

“执行命令时遇到致命错误。”

从我的.NET应用程序调用“loaddatainfle”MySQL命令时。很难找到解决方案,所以我想在这里用对我有效的解决方案来回应。最后,经过几天的阅读,我找到了关于这个问题的所有信息(包括这篇文章),我终于解决了它……而解决方案无论如何都不是直观的,结果是两个不同的问题

我发现的第一个修复方法是,当在内嵌中使用变量时,需要将以下语句添加到连接字符串中(信不信由你):

因此,这意味着您的完整连接字符串应该如下所示:

"server=127.0.0.1;uid=user;pwd=password;database=mysql_db_name;Allow User Variables=True"
这让我很惊讶,但似乎奏效了!!我在这里找到了解决方案:

然而,在我修改了连接字符串之后,尽管大多数输入文件开始为我工作,但我仍然间歇性地收到此错误消息。我会得到一些输入文件的错误消息“在命令执行过程中遇到致命错误”,而不是其他文件??在阅读了更多的内容并玩弄了一些东西之后,这似乎是连接超时的问题(或者类似的奇怪问题),即使错误消息没有说明连接超时。通过增加C#中数据库“MySqlCommand”对象的“CommandTimeout”属性,我可以阻止错误消息弹出,并将数据文件正确导入MySQL,如下所示:

mysqlCommand.CommandTimeout = 600;
string strConnect = "server=127.0.0.1;uid=user;pwd=password;database=mysql_db_name;Allow User Variables=True";
Using (MySqlConnection mysqlConnection = new MySqlConnection(strConnect))
{
    Using (MySqlCommand mysqlCommand = new MySqlCommand())
    {
        mysqlCommand.CommandTimeout = 600;
        mysqlCommand.Connection = mysqlConnection;
        mysqlCommand.CommandType = CommandType.Text;

        mysqlCommand.CommandText = "LOAD DATA INFILE (...your specific command here)";

        try
        {
            mysqlConnection.Open();
            mysqlCommand.ExecuteNonQuery();
            mysqlConnection.Close();
        }
        catch(Exception ex)
        {
            // handle errors
        }
    }
}
因此,完整的代码如下所示:

mysqlCommand.CommandTimeout = 600;
string strConnect = "server=127.0.0.1;uid=user;pwd=password;database=mysql_db_name;Allow User Variables=True";
Using (MySqlConnection mysqlConnection = new MySqlConnection(strConnect))
{
    Using (MySqlCommand mysqlCommand = new MySqlCommand())
    {
        mysqlCommand.CommandTimeout = 600;
        mysqlCommand.Connection = mysqlConnection;
        mysqlCommand.CommandType = CommandType.Text;

        mysqlCommand.CommandText = "LOAD DATA INFILE (...your specific command here)";

        try
        {
            mysqlConnection.Open();
            mysqlCommand.ExecuteNonQuery();
            mysqlConnection.Close();
        }
        catch(Exception ex)
        {
            // handle errors
        }
    }
}
读了这篇文章后,我发现了一个特别的解决方案:


不管怎样,我想这就是我解决问题所需要做的一切。希望这些信息对你也有帮助。祝你好运和快乐

此代码和查询的作用是什么?非致命错误的错误消息是什么?哪个命令没有运行?第一行还是第二行?我只在第二行收到“致命错误”消息此代码和查询的作用是什么?非致命错误的错误消息是什么?哪个命令没有运行?第一条还是第二条?我只在第二行收到“致命错误”的消息。我也有同样的问题,在打破我的头几个小时后,幸运地找到了你的帖子!谢谢我也有同样的问题,在打破我的头几个小时后,幸运地找到了你的帖子!谢谢