Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    ExecutionTimeout non funziona

    Ciao ragazzi,
    sto avendo un problema con una procedura abbastanza semplice, che dovrebbe gestire l'aggiornamento di circa 400 righe per il campo prezzo.

    Quando avvio l'operazione dopo qualche secondo, circa 10, mi esce l'errore del timeout dell'operazione, eppure nel web.config ho configurato correttamente:
    <system.web>
    <httpRuntime executionTimeout="6000"/>


    Il codice che gestisce l'update in questione è questo:

    codice:
    Dim IDMarchio As Integer
            IDMarchio = GrdMarchio.SelectedDataKey.Value
    
    
            Dim Percentuale As Integer
            Percentuale = TxtPercentuale.Text
    
            Dim ConnStr As String = WebConfigurationManager.ConnectionStrings("connessione").ToString
            Dim Conn As New SqlConnection(ConnStr)
            Conn.Open()
    
            Dim MYSQL As String
            Dim MYCMD As SqlCommand
            Dim MYDR As SqlDataReader
    
            MYSQL = "SELECT *FROM tab_prodotti WHERE id_marchio_prodotto = @id_marchio_prodotto AND elimina_prodotto = 0 ORDER BY ID_prodotti ASC"
            MYCMD = New SqlCommand(MYSQL, Conn)
            MYCMD.Parameters.Add("id_marchio_prodotto", SqlDbType.Int).Value = IDMarchio
            MYDR = MYCMD.ExecuteReader
    
            Dim PrezzoVecchio, PrezzoNuovo As Decimal
            Dim IDProdotto As Integer
    
            Dim MYSQL2 As String
            Dim MYCMD2 As SqlCommand
    
            If MYDR.HasRows = True Then
                Do While MYDR.Read
                    PrezzoVecchio = MYDR.Item("prezzo_prodotto")
                    PrezzoNuovo = FormatNumber(PrezzoVecchio * (1 + (Percentuale / 100)), 2)
                    IDProdotto = MYDR.Item("ID_prodotti")
    
                    MYSQL2 = "UPDATE tab_prodotti SET prezzo_prodotto = @prezzo_prodotto WHERE ID_prodotti = @ID_prodotti"
                    MYCMD2 = New SqlCommand(MYSQL2, Conn)
                    MYCMD2.Parameters.Add("prezzo_prodotto", SqlDbType.Decimal).Value = PrezzoNuovo
                    MYCMD2.Parameters.Add("ID_prodotti", SqlDbType.Int).Value = IDProdotto
                    MYCMD2.ExecuteNonQuery()
    
                Loop
            End If
    
            MYDR.Close()
            Conn.Close()
    Come vedete è un semplice aumento di prezzo che infatti per 50 articoli è immediato, mentre se provo su circa 400 mi va in errore.
    Sapete dirmi cosa posso fare per risolvere?

    Grazie mille

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290
    Ma non riesci ad aggiornare tutto con una sola query?

    UPDATE tab_prodotti SET prezzo_prodotto = (prezzo_prodotto* (1 + (@Percentuale/100))

  3. #3
    Ciao, grazie per la risposta.

    Eh ma io devo aggiornare non tutta la tabella, ma solo quegli articoli che rispettano la condizione, ecco perchè la UPDATE è all'interno del ciclo, perchè l'id fornito dal ciclo mi fornisce la condizione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.