由于您使用的ExecuteNonQuery不返回任何行,因此您可以尝试这种基于轮询的方法.它以asyc方式执行查询(没有回调),但应用程序将等待(在while循环内),直到查询完成.来自MSDN.这应该解决超时问题.请试一试.
但是,我同意其他人的意见,你应该多考虑优化查询,以便在30秒内执行.
IAsyncResult result = command.BeginExecuteNonQuery(); int count = 0; while (!result.IsCompleted) { Console.WriteLine("Waiting ({0})", count++); System.Threading.Thread.Sleep(1000); } Console.WriteLine("Command complete. Affected {0} rows.", command.EndExecuteNonQuery(result));