Datenbank (DataGridView) in anderer Form auslesen

symax

Mitglied
Hallo Gemeinde,

habe folgendes Problem:

ich habe in einer Form 2 verschiedene Datenbanken (DB1 und DB2) als DataGridView (reingezogen aus den Datenquellen).

Nun will ich beim Starten diese Datenbanken auslesen.
Das Problem hierbei ist nun aber, dass die Form (Datenbanken) EINMAL mit
Datenbanken.show oder Datenbanken.showdialog aufrufen muss, sonnst ist der DataGridView leer und das Auslesen wird einfach übersprungen (da leer).

Natürlich könnte ich die Datenbanken 2X einfügen (auch in die andere Form), aber da gibts doch bestimmt ne möglichkeit das DataGridView schreiben zu lassen OHNE die Form anzeigen zu lassen.

Derzeit mache ich es folgendermaßen:
Datenbanken.show
Datenbanken.hide

Aber das Fenster ist dann ja kurz sichtbar, was eigentlich nicht wirklich schön ist ...
Wie kann ich das DataGridView füllen lassen OHNE die Form anzuzeigen bzw. wie kann ich die Form unsichtbar anzeigen lassen, dass das kurze "Aufpoppen" nicht sichtbar ist ?

Informationen:
VB 2010 Express
Access 2003 Datenbank

MFG
Stefan
 
Hab bisher so den Inhalt aus der Datenbank ausgelesen.
Hatte ich aus nem Tutorial, aber wo des war find ich leider nimmer ...

MFG
Stefan
 
Hi,

was mir jetzt so spontan ohne viel Aufwand einfallen würde, wäre die Opacity auf 0% zu stellen :)
Also beim Shown Event z.b.

Ist zwar nicht die eleganteste Art, aber sollte funktionieren....
 
Es ist aber ein Schmarrn ein DataGridView zu verwenden, wenn es niemals angezeigt wird. Es gibt sicher auch andere Möglichkeiten die Datenbank auszulesen...
 
ja schon, da hast Du recht. Warum eigentlich nicht mit dem Microsoft ODBC Treiber?
Bei Access DB. Das ganze einfach in eine Classe packen...

z.B.:
Code:
string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\DB1.mdb";
string strAccessSelect = "SELECT Nachname, Vorname FROM [PERSON] WHERE Strasse = keine Ahnung";
string sValue;
OleDbConnection aAccessConn = new OleDbConnection(strAccessConn);
OleDbCommand aAccessCommand = new OleDbCommand(strAccessSelect,aAccessConn);
OleDbDataReader aReader ;
aAccessConn.Open();
try
{
    aReader = aAccessCommand.ExecuteReader();
    aReader.Read();
    sValue = aReader["Nachname"].ToString();
    MessageBox.Show(sValue, "Nachname", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
finally
{
    aAccessConn.Close();
}


das gleiche für DB2.
 
Zuletzt bearbeitet:
Wieso die Daten nicht in eine DataTable lesen und dann damit arbeiten? Sehe denn Sinn des befüllens eines DataGridView nicht, wenn es nicht angezeigt wird... ^^
 
@ Pennpann: Wem sagst du das?
Das ist eine sehr sinnvolle Möglichkeit - und so mache ich es ja auch.
Allerdings scheint sich der Threadersteller symax nixht weiter um das Problem zu kümmern bzw hat sich auch nicht weiter zu den anderen Posts geäussert,, so dass ich von meiner Seite aus da auch nichts mehr zu beigetragen habe...
 

Neue Beiträge

Zurück