DataGridView füllen

dumbaz28

Mitglied
Hallo :)

Ich arbeite im Moment an einem Projekt (mit C#), bei dem die Daten aus einer SQL-Datenbank (XAMPP) gelesen und in ein DataGridView geladen werden sollen. Der Suchparameter wird in eine Textbox ausgegen. Da ich aber noch nie sonderlich mit DataGridView gearbeitet habe (und mit googlen auch noch nicht schlauer geworden bin) stehe ich im Moment mit meinem Latein am Ende.

In die Textbox soll der Suchbegriff eingegeben werden (ideal wäre natürlich, wenn die Daten wie im Google gleich beim Tippen angezeigt und aktualisiert werden, doch es reicht auch schon, wenn die Daten durch einen Buttonklick angezeigt werden.)

In eine Textbox auslesen klappt prima, da weiß ich auch wie damit umgehen. Habt ihr vielleicht ein paar Begriffe für mich, mit denen ich was anfangen kann oder kurze Codezeilen zum anpassen?

Ich bedank mich jetzt schon mal für euer Bemühen :)

lg dumbaz
 
Ich weiß nicht genau, wie du dich mit der Datenbank verbindest; vermutlich über ODBC, da du keine Microsoft SQLServer-Datenbank verwendest. Die notwendigen Klassen findest du im Namespace System.Data und System.Data.Odbc, die du importieren musst. Du machst dann als erstes eine DataTable, wo die Ergebnisse hineingeschrieben werden sollen, die einzelnen Spalten brauchst du nicht zu definieren, das geschieht später automatisch. Dann machst du dir ein OdbcDataAdapter-Objekt, dem du deinen Verbindungsstring und deinen Select-String übergibst; das kannst du im Konstruktor tun. Dann rufst du dessen Fill-Methode auf, mit deiner DataTable als Parameter; dadurch werden die Ergebnisse in die Tabelle geschrieben. Die DataTable gibst du dann als DataSource deines DataGridView an, und das war dann schon alles.
So einfach ist das:
C#:
using System.Data;
using System.Data.Odbc;

...

{
  ...
  string conn = "hier bitte Verbindungsstring eingeben";
  string command = "SELECT * FROM universum";
  DataTable dt = new DataTable;
  OdbcDataAdapter oda = new OdbcDataAdapter(command,conn);
  oda.Fill(dt);
  // Wenn dein DataGridView nicht dgv heißt, bitte ändern
  dgv.DataSource = dt;
  ...
}

PS: Für C# gibt es ein eigenes Unter-Forum
 
Zuletzt bearbeitet:
erstmal danke für deine antwort. aber ich verbinde über MySql zur Datenbank, und dass klappt mittlerweile problemlos. sieht der code später mit MySql anders aus?
 
ich verbinde über MySql zur Datenbank
Kannst du vielleicht nähere Angaben machen?
1.Ist die Datenbank z.B. im Internet ist oder auf deinem lokalen Rechner oder wo?
2. Wie verbindest du dich mit der Datenbank? Mit dem Browser, einem Programm oder wie sonst?
3. Ist es möglich für deine Datenbank einen ODBC-Treiber zu bekommen, den man installieren kann? Wenn ja, dann kannst du den Code übernehmen, ansonsten musst du wahrscheinlich die Klassen aus dem Namespace System.Data.Common verwenden, die aber ähnlich funktionieren. Schau einfach mal in die .NET-Library von http://www.msdn.com (z.B. die Klassenreferenz).
 
also, dass ist der zugriff auf die Datenbank bisher:

Code:
        public string auslesen(string tabelle, string spalte)
        {
            MySqlConnection connection = new MySqlConnection(myConnectionString);
            MySqlCommand command = connection.CreateCommand();
            command.CommandText = "SELECT " + spalte + " FROM " + tabelle;

            MySqlDataReader reader;
            connection.Open();
            reader = command.ExecuteReader();
            reader.Read();
            string wert = (Convert.ToString(reader.GetValue(0)));
            reader.Close();

            return wert;
        }

Noch ist die Datenbank auf dem lokalen Rechner, aber sobald das Projekt fertig ist, wird sie ins Internet gestellt, das Programm läuft jedoch offline. Da die Datenbank jedoch auch für eine Internet paralell funktionieren muss, wird sie online gestellt.
 
Zuletzt bearbeitet:
Moin,

nur ein kleiner Tipp :offtopic:

Nutze die Code-Tags bitte mit eckigen anstelle der spitzen Klammern (also "[]" statt "<>").
Dann klappt's auch mit der Formatierung :p

Gruß
Klaus
 
Moin,

kein Problem ... der gute Wille wahr ja erkennbar :D

Noch ein Tipp in diesem Zusammenhang:
Du kannst auch im Editor den Button mit der '#' zum Einfügen nutzen.
Noch schöner wird es übrigens, wenn man die Worte CODE durch den entsprechenden Sprachstil (bspw.: JAVA, CPP, PHP etc.) ersetzt :)

Gruß
Klaus
 
Wenn die Daten per Internet verfügbar sein sollen, solltest du am besten einen WebService implementieren, den du dann gegebenenfalls aufrufst. Dabei rufst du eine Methode mit den notwendigen Parametern auf, diese wird auf dem Server abgearbeitet, verbindet sich mit der Datenbank, ermittelt die Daten und gibt ein DataSet zurück. Anschließend kannst du dann die Ergebnis-Tabelle in deinem DataSet als DataSource deines DataGridView setzen.
Wie du dich in deinem WebService mit der Datenbank verbindest, ist eine andere Sache. Scheinbar hast du eine spezielle Klassenbibliothek für MySQL-Datenbanken; schau mal in der Doku, ob dort auch eine Klasse MySQLDataAdapter hast, ansonsten musst du per DataReader 'per Hand' eine DataTable füllen. Diese fügst du dann mit Hilfe der Add-Methode der Tables-Eigenschaft einem neu erzeugten DataSet hinzu, das du dann als Rückgabewert verwendest.
 
also im Moment klappt die Erstellung bereits. Die Datenbank wird erst in einem Monat ins Internet gestellt, falls es dann plötzlich nicht mehr klappt, klingt deine Erklärung plausibel, danke :)
 
Zurück