Skip to content

Instantly share code, notes, and snippets.

@riccardopirani
Created February 25, 2020 14:39
Show Gist options
  • Save riccardopirani/d5ae634042347c4c366315acbc56df39 to your computer and use it in GitHub Desktop.
Save riccardopirani/d5ae634042347c4c366315acbc56df39 to your computer and use it in GitHub Desktop.
Sql Timeouit
/*
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;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment