Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482

    Il Datagrid non aggiorna i dati

    Altro problema riccorrente del forum.

    Capita a volte di non riuscire ad aggiornare un database (o comunque la fonte dati) tramite datagrid.

    Poniamo che questo sia il vostro evento Page_Load

    codice:
    Sub Page_Load(Obj as Object, e as Eventargs)
       'codice per popolare il datagrid
    End Sub
    Ogni qualvolta rimadate la pagina al server(PostBeck), ad esempio con l'evento UpdateCommand del datagrid, il framework prima di eseguire il codice relativo al metodo che ha richiamato il postbeck(in questo caso il metodoOnUpdateCommand del Datagrid) esegue il Page_Load e quindi il codice che popola il Datagrid.
    Pertanto ciò che è stato scritto dall'utente all'interno del datagrid viene sostituito dai dati prelevati dal database(o comunque il datasource del datagrid)
    Per evitare ciò basta indicare alla pagina che deve esguire il codice che popola il datagrid solo quando la pagina viene caricata per la prima volta. In questo modo:

    codice:
    Sub Page_Load(Obj as Object, e as Eventargs)
       If not page.IsPostBack Then
          'codice per popolare il datagrid
       End If
    End Sub

    Attenzione a non cofondere PostBack con Refresh(Tasto F5). Ad ogni Refresh e come se la pagina fosse caricata per la prima volta


    Hey hey, my my Rock and roll can never die!

  2. #2
    ce l'ho il if Not Page.IsPostBack però non funziona lo stesso.
    Il procedimento è il seguente:
    Page_Load carico una serie di cose in 1 dataset per popolare delle ddl
    Seleziono 1 ddl e mi si riempono le textbox presenti nel mio form prelevando i dati dal database.
    Modifico i testi delle textbox e faccio l'update.
    Ora dove continuo a sbagliare?????
    Non mi modifica i campi, non mi aggiorna quelli che ci sono....
    Forse devo mettere l'if Not Page.IsPostBack da qualche altra parte????
    aiut..

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Il codice, postare il codice.

    Hey hey, my my Rock and roll can never die!

  4. #4
    scusami ho fatto casino, ti ho risposto dall'altra parte dicendoti pure che ho risolto e invece questa mattina non funziona più niente a questo punto non so più cosa fare
    adesso l'errore che mi da non è tanto nell'update ma nell'autopopolazione delle TextBox con questa definizione:

    Tentativo non valido di lettura in assenza di dati (eppure ci sono)
    e mi evidenzia questa parte di codice:
    myDataReader = myCommand.ExecuteReader()
    myDataReader.read()
    TextBox.Text = trim(myDataReader("nome_Campo"))

    ma!! io non ci capisco più niente
    non so neanche che parte del codice postarti ho più di 600 righe per pagina e le stored procedure sono enormi

  5. #5
    allora.. ho riflettuto... :gren:
    effettivamente era un problema di spazi all'interno dei miei campi nelle tabelle del database come ho detto nell'altra discussione.
    effettivamente togliendoli con il comando trim per la popolazione delle textbox:
    TextBox.Text = trim(myDataReader("nome_Campo"))
    il problema mi si era risolto.
    Siccome però non avevo passato alla stored procedure il parametro che mi diceva quale scelta avevo fatto per l'inserimento dei dati, ma avevo digitato il valore direttamente andando a guardarlo nella tabella e scrivendolo nella mia
    WHERE nome_Campo = 'valore',
    quando sono andata a cancellare i record e a riprovare quel valore era cambiato e così non funzionava più niente.
    Che caos
    Ti ringrazio della pazienza a volte l'inghippo è più semplice di quello che sembra ma i codici sono talmente tanto lunghi che a volte ci si perde..
    Grazie :tongue:

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Ma che errore ricevi?

    Se nella stringa che cerchi di inserire c'è l'apice singolo (') devi eseguire il replace:

    Str = Replace(Str, "'", "''")

    Hey hey, my my Rock and roll can never die!

  7. #7
    non ho nessun (') solo spazi vuoti
    mettendo TRIM nel passaggio dati per popolare le tabelle
    myCommand.Parameters.Add("@nomevar", Trim(textbox.Text))
    mi funziona solo per i varchar ma non per i char e quindi ho dovuto mettere il TRIM nell'inserimento dentro alle textbox
    TextBox.Text = trim(myDataReader("nome_Campo"))
    per l'eventuale modifica dei dati e così funziona.
    non so il perchè ma nsomma va bene lo stesso

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.