Sql Server: timeout connection

0

I have a problem of this type on the code below, when I try to execute it I am shown the following error. How can I go about solving this? What is this due to?
this series of code allows the implementation of the query within a c # program. how can this be resolved, I state that it always happens to me in some cases I run the code

Exception:

System.Data.SqlClient.SqlException (0x80131904): Execution Timeout Expired.  The timeout period elapsed prior to completion of the operation or the server is not responding. ---> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out
   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, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Myapp.Model.CapitoloModel.DuplicaCapitolo(Int32 IdPreventivo, Int32 IdCapitolo) in C:\Users\riccardo\Desktop\Progetti\Myapp\src\Myapp\Myapp\Model\CapitoloModel.cs:line 132
ClientConnectionId:b4f3d128-449f-40da-852e-bba9d0a12924
Error Number:-2,State:0,Class:11Myapp

C# Code:

public static bool DuplicaCapitolo(int IdPreventivo, int IdCapitolo)
        {
            SqlConnection conn = Database.Apriconnessione();
            SqlTransaction Transaction = conn.BeginTransaction();
            bool ret = true;
            try
            {
                const string QueryLastIdCapitolo = " SELECT count(*) + 1 FROM Capitolo  where IdPreventivo = @IdPreventivo ";
                SqlCommand cmdLastidCapitolo = new SqlCommand(QueryLastIdCapitolo, conn, Transaction);
                cmdLastidCapitolo.Parameters.AddWithValue("@IdPreventivo", SqlDbType.Int).Value = IdPreventivo;
                int NumeroCapitoloLOAD = (int)cmdLastidCapitolo.ExecuteScalar();
                const string Query = "Select * from Capitolo where IdCapitolo=@IdCapitolo";
                SqlCommand cmd = new SqlCommand(Query, conn, Transaction);
                cmd.Parameters.AddWithValue("@IdCapitolo", IdCapitolo);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);

                foreach (DataRow dr in dt.Rows)
                {
                    int IdPreventivoLOAD = int.Parse(dr["IdPreventivo"].ToString());
                    string TipologiaLOAD = dr["Tipologia"].ToString();
                    decimal PrezzoRiservatoLOAD = decimal.Parse(dr["PrezzoRiservato"].ToString());
                    string DescrizioneLOAD = dr["Descrizione"].ToString();
                    decimal RicaricoLOAD = decimal.Parse(dr["Ricarico"].ToString());
                    const string QueryINS = "Insert into Capitolo(IdPreventivo,NumeroCapitolo,Descrizione,Ricarico,Tipologia,PrezzoRiservato) values(@IdPreventivo,@NumeroCapitolo,@Descrizione,@Ricarico,@Tipologia,@PrezzoRiservato) SELECT SCOPE_IDENTITY()"; SqlCommand cmd2 = new SqlCommand(QueryINS, conn, Transaction);
                    cmd2.Parameters.AddWithValue("@IdPreventivo", IdPreventivoLOAD);
                    cmd2.Parameters.AddWithValue("@NumeroCapitolo", NumeroCapitoloLOAD);
                    cmd2.Parameters.AddWithValue("@Descrizione", DescrizioneLOAD);
                    cmd2.Parameters.AddWithValue("@Ricarico", RicaricoLOAD);
                    cmd2.Parameters.AddWithValue("@Tipologia", TipologiaLOAD);
                    cmd2.Parameters.AddWithValue("@PrezzoRiservato", PrezzoRiservatoLOAD);
                    cmd2.ExecuteNonQuery();
                    const string QueryInsArticoli = "Insert into SottoCapitolo(IdCapitolo, Tipo, CodiceDistinta,Codice, Descrizione, DescrizioneEstesa, UnitaMisura, SottoCapitolo1, SottoCapitolo2, SottoCapitolo3, Note, RicaricoManodopera, Quantita, CostoUnitario, Images, PrezzoListino,PrezzoPersonalizzato)  SELECT (select MAX(IdCapitolo) from Capitolo ) as IdCapitolo, Tipo, CodiceDistinta,Codice, SottoCapitolo.Descrizione, DescrizioneEstesa, UnitaMisura, SottoCapitolo1, SottoCapitolo2, SottoCapitolo3, Note, RicaricoManodopera, Quantita, CostoUnitario, Images, PrezzoListino,PrezzoPersonalizzato from SottoCapitolo inner join Capitolo on Capitolo.IdCapitolo = SottoCapitolo.IdCapitolo where SottoCapitolo.IdCapitolo = @IdCapitolo group by SottoCapitolo.Tipo,SottoCapitolo.Codice,SottoCapitolo.CodiceDistinta,SottoCapitolo.Descrizione,SottoCapitolo.DescrizioneEstesa,SottoCapitolo.UnitaMisura,SottoCapitolo.SottoCapitolo1,SottoCapitolo.SottoCapitolo2,SottoCapitolo.SottoCapitolo3,SottoCapitolo.Note,SottoCapitolo.RicaricoManodopera,SottoCapitolo.Quantita,SottoCapitolo.CostoUnitario,SottoCapitolo.Images,SottoCapitolo.PrezzoListino,SottoCapitolo.PrezzoPersonalizzato,Capitolo.IdCapitolo "; SqlCommand cmdInsArticoli = new SqlCommand(QueryInsArticoli, conn, Transaction);
                    cmdInsArticoli.Parameters.AddWithValue("@IdCapitolo", SqlDbType.Int).Value = IdCapitolo;
                    cmdInsArticoli.ExecuteNonQuery();
                }

                Transaction.Commit();
            }
            catch (Exception ex)
            {
                Transaction.Rollback();
                Managementerror.SendError("Errore: " + ex);
                ret = false;
            }
            finally
            {
                conn.Close();
            }

            return ret;
        }
c#
sql
sql-server
asked on Stack Overflow Feb 25, 2020 by riki

1 Answer

1

You can add to your connectionString Connection Timeout = 30 it could work, for more information you will find an interesting link ( link below ) with all the details regarding Connection String

https://www.connectionstrings.com/all-sql-server-connection-string-keywords/

answered on Stack Overflow Feb 25, 2020 by sayah imad

User contributions licensed under CC BY-SA 3.0