有一个sql语句,运行的时间比较长,在sql server中要1分钟左右才能运行完。在程序中运行时,会抛出以下的异常:
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)我开始认为是timeout了,就把timeout时间设置了长一些,不过似乎没什么用,还是出同样的异常。

解决方案 »

  1.   

    你不会try catch一下么,另外1分钟的sql就不要放在程序里面了,最好还是想办法优化一下
      

  2.   

    上面的异常不就是try catch的结果吗
      

  3.   

    在sql server中要1分钟左右?那放到程序中用户还能守的得了吗?能不能优化一下?
      

  4.   

    你先在查询分析器里面运行你的sql代码试试,看看是否超时..如果不超时你就把链接字符串里的时间改长一些.
      

  5.   

    你把连接字符串发上了看看,好像是一个bool类型错了
      

  6.   

    看样子你是SqlConnection的异常,不是SqlCommand的异常,字符串对否?SqlServer是否允许远程链接