Füllen eines Datagrids via Datatable

xlon

Mitglied
Hallo zusammen,

ich möchte gerne ein Datagridview mit aktuellen Daten aus einem SQL Server laden.

Das ganze mache ich folgender maßen.

Einmalig:
Code:
SqlDataAdapter daWeristOnline;
        DataTable dtWeristOnline;
        private void iniCTcontrolWeristOnline()
        {

            string sql = "SQL string über mehrer Tabellen";



            SqlConnection con = new SqlConnection();
            con.ConnectionString = "constring";

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandText = sql;

            SqlCommand cmdUpdate = new SqlCommand();
            cmdUpdate.Connection = con;
            cmdUpdate.CommandText = sql;

           
            dtWeristOnline = new DataTable();
            
            daWeristOnline = new SqlDataAdapter(cmd);
         
            daWeristOnline.Fill(dtWeristOnline);

            dtWeristOnline.PrimaryKey = new DataColumn[] { dtWeristOnline.Columns["IP"], dtWeristOnline.Columns["Computer"] };
            dgvCTcontrolWeristOnline.DataSource = dtWeristOnline;

            dgvCTcontrolWeristOnline.Columns["aktAusgegebenAn"].Visible = false;
            dgvCTcontrolWeristOnline.Columns["Vorname"].Visible = false;
            dgvCTcontrolWeristOnline.Columns["Nachname"].Visible = false;
            dgvCTcontrolWeristOnline.Columns["IP"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvCTcontrolWeristOnline.Columns["Name"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvCTcontrolWeristOnline.Columns["Betriebssystem"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvCTcontrolWeristOnline.Columns["Modell"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
        }

und alle 10 Sekunden möchte ich es updaten:

Code:
 private void fillCTcontrolWeristOnline()
        {  


            daWeristOnline.Fill(dtWeristOnline);
                
            
        }

Mein Problem ist nun, dass die richtigen Zeilen geupdatet werden, die, die aber in der SQL-Tabelle nicht mehr drin sind, bleiben im Grid.

Es kommen also neue hinzu (KEINE DOPPELTEN), geändert werden auch die richtigen Zeilen nur gelöscht nicht.

Ich hoffe mir kann einer helfen.
 
Hallo,

kommen nur die geänderten Daten aus der SQL Abfrage oder prinzipiell alle Daten?
Mach dein DatagridView doch vorher leer und häng die aktuellen Daten dann nur rein.
 
Hallo Turri,

danke für deine Antwort. Das Problem ist, wenn ich das Datagrid vorher lösche, dass ich dann "Sprünge" beim Aktualisieren habe.
 

Neue Beiträge

Zurück