【发布时间】:2015-12-01 17:21:20
【问题描述】:
我有一个 mysql 插入程序,它设置为在另一个程序完成后运行...
我这样做的方式是,initial程序做的最后一件事就是启动mysql插入程序...这里是方法
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "PFML_STATES_MYSQL.exe";
startInfo.Arguments = args[0];
Process.Start(startInfo);
Environment.Exit(0);
我目前正在从 mysql 插入器中的这段代码中获取堆栈跟踪
public void ClearAll(string args)
{
using (MySqlCommand command = new MySqlCommand())
{
command.Connection = this.connection;
if (args.Equals("ny"))
command.CommandText = "delete from jurisdiction where offender_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1);delete from offenders_locations where offender_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1);delete from vehicles where offenders_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1);delete from alias where offenders_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1);delete from marks where offenders_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1);delete from offender_pictures where offenders_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1);delete from sentencing_info where offenders_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1);delete from crimes where offendersXREF IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1);delete from offender_pictures_additional where offenders_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1);";
else
{
command.CommandText = "delete from jurisdiction where offender_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1 and (county_id = 360052 or county_id = 360099 or county_id = 360030));delete from offenders_locations where offender_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1 and (county_id = 360052 or county_id = 360099 or county_id = 360030));delete from vehicles where offenders_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1 and (county_id = 360052 or county_id = 360099 or county_id = 360030));delete from alias where offenders_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1 and (county_id = 360052 or county_id = 360099 or county_id = 360030));delete from marks where offenders_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1 and (county_id = 360052 or county_id = 360099 or county_id = 360030));delete from offender_pictures where offenders_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1 and (county_id = 360052 or county_id = 360099 or county_id = 360030));delete from sentencing_info where offenders_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1 and (county_id = 360052 or county_id = 360099 or county_id = 360030));delete from crimes where offendersXREF IN (select offender_id from offenders WHERE offender_id like 'NY%' AND risk_level !=1 and (county_id = 360052 or county_id = 360099 or county_id = 360030));delete from offender_pictures_additional where offenders_id IN (select offender_id from offenders WHERE offender_id like 'NY%' AND (county_id = 360052 or county_id = 360099 or county_id = 360030) AND risk_level !=1);";
}
command.ExecuteNonQuery();
}
}
堆栈跟踪,因为我很傻,所以我删除了......但它说的是无法从 command.executereader() 立即完成非阻塞套接字操作 > command.executenonquery()
关于这个问题真正有趣的部分是它只发生在初始程序启动 mysql 插入器时,如果我手动启动插入器它运行完美......
错误:
MySql.Data.MySqlClient.MySqlException: 期间遇到致命错误 命令执行。 ---> MySql.Data.MySqlClient.MySqlException:致命 尝试读取结果集时遇到错误。 ---> MySql.Data.MySqlClient.MySqlException:从流中读取有 失败的。 ---> System.IO.IOException: 无法从 传输连接:无法进行非阻塞套接字操作 立即完成。 ---> System.Net.Sockets.SocketException: A 非阻塞套接字操作无法立即完成
【问题讨论】: