Microsoft报告(RDLC)将数据保存到SQL Server数据库



我们在ASP.NET Web Forms App(在报告查看器控件上)中有一个复杂的RDLC报告,该应用程序在报告生成过程中阻止了我们在表中的所有行。如果我们尝试将数据(使用EF 5.0)保存在报告中获取数据的同一表中,我们将获得此例外:

 System.Data.SqlClient.SqlException: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding. ---> 
 System.ComponentModel.Win32Exception: The wait operation timed out
--- End of inner exception stack trace ---
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
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, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at System.Data.Objects.ObjectContext.ExecuteStoreCommand(String commandText, Object[] parameters)
...

我们尝试在报告创建期间使用读取的隔离级别(如[1]中所述),但这无济于事。我们该怎么办?

[1] -http://www.c-sharpcorner.com/uploadfile/ff2f08/prevent-dead-dead-lock-in-entity-framework/

您可以尝试将WITH(NOLOCK)从SSRS查询中的语句中添加到每个末端:

SELECT * 
FROM table1 WITH(NOLOCK)

但是,这相当于使用READ UNCOMMITTED,因此您可能看不到任何区别。

最新更新