Серверная часть MS sql 2014 (на том же компьютере) - Executereader times out (native error code: 258) @ second executereader()
в том же соединении. Почему это так? (Нет большого объема данных, задействованные строки cmd верны)
Примечание: не имеет значения, идет ли весь SELECT в отдельное соединение, время ожидания второго всегда истекает. Также не имеет значения, если бы я использовал DataAdapter для перехвата данных ... время ожидания ... см. Ниже, спасибо за идеи:
using (SqlConnection c = new SqlConnection(cString))
{
c.Open();
using (SqlCommand cmd = new SqlCommand(querystringPO, c))
{
cmd.Parameters.AddWithValue("@paramRecipe", productionOrderNo);
using (SqlDataReader rd = cmd.ExecuteReader())
{
dtRecipe = new DataTable();
dtRecipe.Load(rd);
rd.Close();
}
}
if (dtRecipe.Rows.Count > 0)
{
string querystringOpDefs = "SELECT * FROM ReferencedFieldsView_OperationDefinition WHERE RecipeID=@paramOpDef";
using (SqlCommand cmd1 = new SqlCommand(querystringOpDefs, c))
{
cmd1.Parameters.AddWithValue("@paramOpDef", dtRecipe.Rows[0].Field<int>("ID"));
using (SqlDataReader rd = cmd1.ExecuteReader())
{
dtOpDefs = new DataTable();
dtOpDefs.Load(rd);
rd.Close();
}
}
string querystringBOMItems = "SELECT * FROM ReferencedFieldsView_BomItem WHERE RecipeID=@paramBOMItem";
using (SqlCommand cmd2 = new SqlCommand(querystringBOMItems, c))
{
cmd2.Parameters.AddWithValue("@paramBOMItem", dtRecipe.Rows[0].Field<int>("ID"));
using (SqlDataReader rd = cmd2.ExecuteReader())
{
dtBOMItems = new DataTable();
dtBOMItems.Load(rd);
}
}
}
}
Пример ниже:
Исключение: System.InvalidOperationException: операция сервера обнаружила исключение ---> System.Data.SqlClient.SqlException: истекло время ожидания выполнения. Время ожидания истекло до завершения операции или сервер не отвечает. ---> System.ComponentModel.Win32Exception: истекло время ожидания операции --- Конец трассировки стека внутреннего исключения --- в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое breakConnection, Action`1 wrapCloseInAction) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj, булева callerHasConnectionLock, булева asyncClose) при System.Data.SqlClient.TdsParser.TryRun (runBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader DATASTREAM, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, булева & dataReady) в системе .Data.SqlClient.SqlDataReader.TryConsumeMetaData () в System.Data.SqlClient.SqlDataReader.get_MetaData () в System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader DS, RunBehavior runBehavior, String resetOptionsString, булева IsInternal, булева forDescribeParameterEncryption, булева shouldCacheForAlwaysEncrypted ) в System.Data .SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, булева returnStream, булева асинхронный, Int32 тайм-аут, задача и задачи, булева asyncWrite, булева inRetry, SqlDataReader DS, булева describeParameterEncryptionRequest) при System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior , RunBehavior runBehavior, Boolean returnStream, String метод, завершение TaskCompletionSource`1, время ожидания Int32, Task & task, Boolean & usedCache, Boolean asyncWrite, Boolean inRetry) в System.Data.SqlClient.SqlCommand.RunExecutehavior, runBehavior cmd Метод String) в System.Data.SqlClient.SqlCommand.ExecuteReader (поведение CommandBehavior, метод String) в System.Data.SqlClient.SqlCommand.ExecuteReader ()