+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 4 su 4

Popolare DataGridView con DataSet

  1. #1
    virgola non è in linea Novello
    Post
    17
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao a tutti, sono sempre alle prese con la DataGridView.
    Ho la Form1 che mi fa da menu. Qui ho un pulsante che richiama la Form2 dove ho (la faccio semplice) una DataGridView che si popola grazie ad un DataSet nell'evento Load della Form2.
    Ecco le istruzioni:
    Dim Connection As New SqlConnection("Data Source=miaist; Initial Catalog=miodb; User Id=sa; Password=miapwd;")
    Dim Adapter As New SqlDataAdapter
    
    Try
        Connection.Open()
        Adapter.SelectCommand = New SqlCommand("SELECT * FROM tabella1;", Connection)
        Adapter.Fill(MainDatabase.tabella1)
        Adapter.SelectCommand = New SqlCommand("SELECT * FROM tabella2;", Connection)
        Adapter.Fill(MainDatabase.tabella2)
    Catch ex As Exception
        MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
    Finally
        Connection.Close()
    End Try
    
    MioDGV.DataSource = MainDatabase.tabella1
    
    "MainDatabase" è il Name che ho dato al DataSet che contiene le due tabelle (relazionate per ID)

    Ora veniamo al dunque: lancio il programma (Form1), click sull'apposito pulsante ed il programma apre il Form2 popolando correttamente la DataGridView. Non faccio nulla! Esco subito dalla Form2 (click sulla X). L'evento Closing della Form2 non esiste. Rientro nella Form2 (quindi riclicco sull'apposito pulsante della Form1) ed a questo punto - nonostante il mio DataSet contenga il numero di record corretti - viene visualizzato solo il primo ed inoltre se clicco su questa riga il programma va in errore perché la colonna 0 (quella dell'ID) è diventata di tipo Bitmap anziché integer.
    Lo stesso problema non ce l'ho naturalmente se chiudo completamente il programma (anche la Form1) e rientro.

    Se non sono stato chiaro, come credo, chiedete pure.

    ciao, grazie

  2. #2
    L'avatar di Cteniza
    Cteniza non è in linea Amanuense
    Post
    4,378
    Blogs
    36
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ogni VOLTA che richiami form2, visto il codice, esegue la generazione ex novo del datataset e del datagridview.
    Non credo sia quello che ti interessa fare, quindi NON è nella form2 che devi fare il lavoro ma nella form1 o più prosaicamente su un oggetto "shared" generato dalla form1 e gestito dalla form2
    ℹ️ Leggi di più su Cteniza ...

  3. #3
    virgola non è in linea Novello
    Post
    17
    Like Inviati  
    0
    Like Ricevuti  
    0
    La generazione ex novo dei due oggetti è proprio quello che vorrei fare. Vorrei fare click sul pulsante della Form1 ed aprire tutto ex novo, addirittura anche la connessione al db la ripeto ogni volta. A prescindere dal fatto che sia più o meno (sicuramente meno - sono d'accordo con te, ma sono ancora in fase di studio degli oggetti utilizzati -) intelligente. Solo che per la connessione, p.e., basta chiuderla Conne.Close() e distruggerla Conne = Nothing, forse per gli altri oggetti occorre fare altro ... che non so.
    Grazie.

  4. #4
    virgola non è in linea Novello
    Post
    17
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ho deciso di risolverla come hai suggerito (almeno credo). Nella Form1 anziché scrivere:
    Form2.ShowDialog
    
    Ho scritto:
    Dim dlg As New Form2
    Dim dr As DialogResult = dlg.ShowDialog
    
    Grazie, alla prossima

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. DataGridView non mostra tutte le colonne del suo DataSet
    Da giunespo nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 26-11-2020, 18:25
  2. Risolto: Popolare un datagridview
    Da nerocicuta nel forum Visual Basic .Net
    Risposte: 5
    Ultimo Post: 21-10-2011, 02:24
  3. Risolto: Popolare DataGridView
    Da AleSpi nel forum Visual Basic .Net
    Risposte: 7
    Ultimo Post: 21-03-2011, 15:02
  4. Popolare i dataset tramite textbox
    Da cequeta nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 14-07-2009, 21:14
  5. Popolare Dataset
    Da saby68 nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 08-01-2006, 14:36