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

    [VB.NET 2008] - Eseguiquery e databind

    Ho un sqldatasource che legge una lista di nomi ordinati, ed una datalist per visualizzarli a video.

    Accanto ad ogni nome ho messo un pulsante freccia in su e freccia in giù per spostarsi nell'ordine.

    cliccando sui pulsanti eseguo due query una per incrementare o decrementare il loro codice di 1 punto ed una per eseguire l'operazione inversa sul precedente o successivo. Il tutto mi serve per ordinare una lista di nome come preferisco.

    Solo che dopo aver eseguito le query di aggiornamento sul DB, quando vado a rileggere i valori per aggiornarli a video questi sul DB si aggiornano, sulla visualizzazione no, come se eseguisse prima la rilettura dei dati che l'update.

    come posso fare a risolvere il problema?

    grazie in anticipo

  2. #2
    prova a chiamare manualmente il metodo databind sulla datasource
    Saluti a tutti
    Riccardo

  3. #3
    é così che faccio, una volta terminati gli aggiornamenti richiamo il databind sul datasource e poi sulla lista, ma sembra che lui esegua prima il ricaricamento che l'aggiornamento dei dati.

    si tratta di due connessioni diverse, dovrei trovare il modo per attendere l'esecuzione della query sulla connessione 1 prima di lanciare l'aggiornamento sulla connessione 2.

    non so se mi spiego... help please

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    non e' che fai il databind nel pageLoad?
    in questo caso, l'aggiornamento avverra' dopo...
    prova a fare il databind nel #Page_LoadComplete
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  5. #5
    uso controlli ajax per cui in realtà non ricarico la pagina, lancio il databind dopo le query nella stessa procedura.

  6. #6
    Prova a postare una sintesi del codice aspx e della classe
    Saluti a tutti
    Riccardo

  7. #7
    Protected Sub lnkGiu_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
    Dim Cod_Incontro As String = sender.commandArgument
    Dim StringaSQL As String = "Select * From Incontro Where Cod_Incontro = " & Cod_Incontro
    Dim RecordPrecedente As DataRow = Apri_Record(Connessione, StringaSQL)
    StringaSQL = "Select * From Incontro Where Ordine_Incontro > " & RecordPrecedente("Ordine_Incontro") & " Order By Ordine_Incontro ASC"
    Dim RecordSuccessivo As DataRow = Apri_Record(Connessione, StringaSQL)
    If Not RecordSuccessivo Is Nothing Then
    Dim Transazione As OleDbTransaction
    Transazione = Connessione.BeginTransaction()
    Try
    Dim Comando As OleDbCommand = New OleDbCommand
    Comando.Connection = Connessione
    Comando.Transaction = Transazione
    Comando.CommandText = "UPDATE Incontro SET Ordine_Incontro = " & RecordPrecedente("Ordine_Incontro").ToString & " WHERE (Cod_Incontro = " & RecordSuccessivo("Cod_Incontro").ToString & ")"
    Comando.ExecuteNonQuery()
    Comando.CommandText = "UPDATE Incontro SET Ordine_Incontro = " & RecordSuccessivo("Ordine_Incontro").ToString & " WHERE (Cod_Incontro = " & RecordPrecedente("Cod_Incontro").ToString & ")"
    Comando.ExecuteNonQuery()
    Transazione.Commit()
    Catch ex As OleDbException
    Transazione.Rollback()
    Finally
    DatIncontro.Dispose()
    DatIncontro.DataBind()
    lstIncontro.DataBind()
    End Try
    End If
    End Sub

    ecco il codice

  8. #8
    mamma mia che pastrocchio
    puoi commentarmi il senso ad esempio di questo codice

    Finally
    DatIncontro.Dispose()
    DatIncontro.DataBind()

    spiegando anche che cosa è DatIncontro?
    Saluti a tutti
    Riccardo

  9. #9
    in pratica io eseguo il codice che scambia i valori di due record per invertire l'ordine di visualizzazione.

    Datincontro è la SQLdatacontrol associata alla listview per visualizzare i dati.

    Una volta terminate le du8e query di aggiornamento ricarico la SQLdatasource...

    PS Se hai una soluzione migliore consigliami pure non me ne ho a male se trovo chi sa fare meglio di me :-) anzi gli chiedo aiuto più spesso :-)

    Le modifiche sul DB le fa, ma rilegge i dati prima di averle terminate e non mi fa vedere la pagina aggiornata.
    C'è un modo per dire alla connessione, executenonquery, attendi il risultato, prosegui con il codice.

  10. #10
    + o - cosa la procedura indicata facesse si capisce ma continuo a non capire il senso di chiamare dispose e successivamente databind.
    Cmq, la procedura la puoi migliorare oltre che come architettura e ciè spostando in una classe e lasciando nel click della pagina web solo la chiamata ad una funzione che come codice e cioè imparando ad usare i parametri e non appiccicando i valori nelle query ed evitando di usare oggetti connection globali alla classe.
    Per il resto, puoi utilizzare l'sqldatasource anche per gli update e gestire eventualmente negli eventi onupdate dell'oggetto stesso un eventuale databind se necessario.
    Saluti a tutti
    Riccardo

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.