C#Mysql出现致命错误
该脚本在工作台上运行良好,但当我在C#中使用它时,我得到“在命令执行过程中遇到致命错误” 我看不出错误,但我相信是通过“@” 当我执行下面的脚本时,它可以工作: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;"; 但当我
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
}
}
}
读了这篇文章后,我发现了一个特别的解决方案:
不管怎样,我想这就是我解决问题所需要做的一切。希望这些信息对你也有帮助。祝你好运和快乐 此代码和查询的作用是什么?非致命错误的错误消息是什么?哪个命令没有运行?第一行还是第二行?我只在第二行收到“致命错误”消息此代码和查询的作用是什么?非致命错误的错误消息是什么?哪个命令没有运行?第一条还是第二条?我只在第二行收到“致命错误”的消息。我也有同样的问题,在打破我的头几个小时后,幸运地找到了你的帖子!谢谢我也有同样的问题,在打破我的头几个小时后,幸运地找到了你的帖子!谢谢