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

    [vb.net] Aggiornamento dati dopo insert

    Salve, ho questo tipo di problema, praticamente dopo aver effettuato una insert o una delete, devo ricaricare il programma per vedere gli effetti, se per esempio inserisco nella form1 e visualizzo tramite datagrid nella form2, ciò che ho inserito nella form1 nn è visibile nel datagrid se nn dopo aveer ricaricato. Questo succede anche effettuando una delete. Come posso risolvere questo problema?

    Grazie 1000
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  2. #2
    specifica meglio il tipo di binding tra la sorgente dati e la datagridview.
    cosa intendi per ricaricare? far ripartire il programma o forzare il reload dei dati per la griglia?
    no pain no gain!

    ricordati che hai dei limiti...

  3. #3
    Allora, io ho ad esempio il datagrid con il pulsante cancella, che cancella la riga a seconda della selezione, quando elimino un riga devo ricaricare il programma per vedere la riga cancellata, altrimenti viene cancellata dal database ma non dal datagrid se non dopo averlo ricaricato. Questo è il codice:

    Imports System.Data
    Imports System.Data.OleDb
    Public Class visualizzaanamnesiForm

    Private Sub visualizzaanamnesiForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'TODO: questa riga di codice carica i dati nella tabella 'AnamnesiAtletaDataSet2.AnamnesiAtleta'. È possibile spostarla o rimuoverla se necessario.
    Me.AnamnesiAtletaTableAdapter.Fill(Me.AnamnesiAtle taDataSet2.AnamnesiAtleta)

    connection = New OleDbConnection
    Dim connectionString As String = "Data Source=C:\Documents and Settings\Peppe\Documenti\Visual Studio 2005\Projects\Software atletica\Software atletica\AnamnesiAtleta.mdb; Provider=Microsoft.Jet.OLEDB.4.0;"
    connection.ConnectionString() = connectionString
    connection.Open()
    End Sub
    Private connection As OleDbConnection
    Private Sub cancellaButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cancellaButton.Click

    Dim readcell As String = DataGridView1.CurrentCell.Value
    Dim risposta As String
    risposta = MsgBox("Sicuro di Cancellare?", MsgBoxStyle.OkCancel)
    If risposta = 1 Then
    Try

    Dim command As New OleDbCommand
    command.Connection() = connection


    command.CommandText() = "Delete from AnamnesiAtleta where Numero=('" + readcell + "')"
    command.ExecuteNonQuery()

    MsgBox("Cancellato correttamente")

    Catch
    MsgBox(Err.Description)

    End Try


    End If


    End Sub


    Quindi intendo come poter ricaricare il datagrid dopo la cancellazione o dopo un inserimento?

    Grazie
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  4. #4
    vedo un dataset di mezzo

    se hai creato il DataSource associato alla datagridview via designer allora dovresti avere anche un bindingsource e un tableadapter nella barra sottostante la form (in visualizzazione designer)

    potresti gestire gli eventi UserAddedRow e UserDeletedRow della datagridview implementando il codice

    codice:
    Me.AnamnesiAtletaBindingSource.EndEdit()
    Me.AnamnesiAtletaMeTableAdapter.Update(Me.AnamnesiAtletaDataSet2.AnamnesiAtleta)
    in questo modo ogni modifica alla griglia viene riportata direttamente nel db

    usando oledbcommand bypassi direttamente il dataset che, essendo disconnesso come rappresentazione dati, non viene aggiornato
    no pain no gain!

    ricordati che hai dei limiti...

  5. #5
    Non ho capito molto bene, cmq queste solo le modifiche che ho apportato

    nelle proprietà del datagrid ho impostato la voce

    allowusertoaddrows=true
    allowusertodeleterows= true

    poi nel codice del datagrid ho inserito

    Me.AnamnesiAtletaBindingSource.EndEdit()
    Me.AnamnesiAtletaMeTableAdapter.Update(Me.Anamnesi AtletaDataSet2.AnamnesiAtleta)


    Ma non noto nessuna modifica o aggiornamento nell'eliminazione di una celle, dove sbaglio? grazie
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  6. #6
    passa alla modalità designer per la form che contiene la griglia

    seleziona la datagridview

    nel tab proprietà clicca sul fulmine giallo. ti compare l'elenco degli eventi gestibili per la griglia

    cerca UserAddedRow. doppio click nella cella a fianco. ti viene generato in automatico il codice per gestire l'evento

    idem per UserDeletedRow
    no pain no gain!

    ricordati che hai dei limiti...

  7. #7
    Quando mi genera il codice vado ad incollarci all'interno

    Me.AnamnesiAtletaBindingSource.EndEdit()
    Me.AnamnesiAtletaMeTableAdapter.Update(Me.Anamnesi AtletaDataSet2.AnamnesiAtleta)

    se è cosi nn succede niente
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  8. #8
    ma insert e delete continui a farli via oledbcommand?
    no pain no gain!

    ricordati che hai dei limiti...

  9. #9
    Si, potresati postarmi il codice nel modo che dici tu? grazie
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

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.