DataGridView automatisch aktuallisieren

DaSuckOOr

Mitglied
hi,

ich habe aus meiner c# anwendung heraus einen access datenbank angebunden! wenn ich in die datenbank aus der anwendung heraus die datenbank fülle, zeigt mir das Grid erst die Neueinträge an wenn ich die Anwendung nochmal starte, wie kann ich das bei einem Neueintrag sofort anzeigen? .refresh() etc. funktioniren nicht...

mfg
 

Norbert Eder

Erfahrenes Mitglied
Bitte an die Groß- und Kleinschreibung halten.

Wie hast du das Grid an die Daten gebunden, sprich, was verwendest du hier? DataAdapter, DataSet .... oder befüllst du das Grid manuell?
 

DaSuckOOr

Mitglied
hi,

ich habe eine Access Datenbank erstellt und die dann in Visual Studio eingebunden!
Und dann einfach ein Grid erstellt und die Datenbank als source angegeben!
Aber wenn ich auf Eigenschaften des Grids gehe, sehen ich was von DataSet...

mfg
 
Zuletzt bearbeitet:

DaSuckOOr

Mitglied
ich trage neue Daten über das Anwendungsfenster, in der auch das Grid sichtbar ist! Also die Daten sollen praktisch vom Programm nach Access und von dort aus gleich wieder zurück ans Grid!
 

Norbert Eder

Erfahrenes Mitglied
Aso, also hast du eigene Felder in denen zu das einträgst, einen Speichern-Button und dann sollte alles aktualisiert werden, korrekt?

Hängst du die neuen Daten direkt ans DataSet an, oder schreibst du das über einen Command in die Datenbank?
 

DaSuckOOr

Mitglied
Richtig! Du hast meine Problematik erfasst :)

hier mal der Code mit dem ich in Access schreibe:

Code:
  OleDbConnection con = new OleDbConnection(
     @"Provider=Microsoft.Jet.OLEDB.4.0;
     Data Source=C:\data.mdb"); 

  string strSQL = "INSERT...."; 
  DataSet ds = new DataSet(); 

  OleDbCommand cmd = new OleDbCommand(strSQL, con); 
  con.Open(); 
  OleDbDataReader dr = cmd.ExecuteReader(); 

  dr.Close(); 
  con.Close();

thx,mfg
 

DaSuckOOr

Mitglied
jetzt bin ich noch auf ein anderes Problem gestoßen, wenn ich über einen Button im Programm mit "Create table..." eine neue Tabelle erstelle und dies dann sofort im Grid anzeigen lassen will... Gibts da irgendeine Funktion dafür? da ich vorher die Tabellen der Datenbank schon beim anlegen des Grid's angegeben habe und so keine Zugriff auf die neuen Tabellen habe?

Vielen Dank
 

Norbert Eder

Erfahrenes Mitglied
Zum ersten Problem:
Da du deine Daten ausserhalb des DataAdapter/DataSets aktualisierst, musst du dein DataSet über den DataAdapter neu befüllen (MyDataAdapter.Fill(MyDataSet)). Damit sollte dies funktionieren.

Zum zweiten Problem:
Wenn du eine neue Tabelle erstellst, musst du natürlich den SelectCommand, UpdateCommand etc. deines DataAdapters entsprechend abändern (SELECT * FROM MeinerNeuenTabelle) und ebenfalls das DataSet neu befüllen. Zudem musst du die Spalten neu zuweisen, sofern du hier nicht die automatische Anzeige gewählt hast.
 

DaSuckOOr

Mitglied
danke für deine Antwort! Leider habe ich keinen DataAdapter bzw. finde Ihn nicht! Ich habe versuch ein neues Objekt mit DataAdapter myDataAdapter = new DataAdapter(); anzulegen.. aber das funktioniert nicht...?

mfg
 

Neue Beiträge