Visual C++ MFC Datenbankprogrammierung Tutorial 2


Datenbankbeispiel 2: Artikel-Daten in ListBox anzeigen

Einleitung

In diesem zweiten Datenbank-Tutorial zeige ich, wie man mit Visual C++ und MFC (Microsoft Foundation Classes) eine Datenbankanwendung erstellt, die die Inhalte einer Datenbanktabelle in einer ListBox anzeigt. Um diese Anleitung nicht zu lang werden zu lassen, schreibe ich immer nur die Dinge auf, die verändert werden müssen. Bei Codeabschnitten werden die Teile, die von mir verändert wurden, fett geschrieben.


Praktisches Beispiel

Aufgabenstellung

Suchen Sie mit dem Explorer die MS-Beispieldatenbank "Nordwind". Es kann sein, dass diese nicht installiert ist.

Erstellen Sie ein Programm, welches in eine Listbox eines Dialoges von den Sätzen der Tabelle "Artikel" die Felder "Artikelnummer" und "Artikelname" einträgt und formatiert anzeigt.

Lösung - Schritt für Schritt Anleitung

  1. Neues Projekt anlegen in Visual C++:
  2. Dialog-Design erstellen:
    Es wird nur ein Listenfeld (ListBox) benötigt, um alle Artikel anzuzeigen.
    Screenshot: Dialog-Editor mit ListBox-Steuerelement
  3. Eingabefelder mit Datenbankfeldern verbinden:
    Dazu muss der Klassenassistent geöffnet werden (Strg+W oder über das Menü View -> ClassWizard).
    Screenshot: MFC ClassWizard für Membervariablen
  4. ListBox mit Daten aus der Datenbank füllen:
    Die ListBox muss mit Daten befüllt werden. Dies geschieht am besten in der OnInitialUpdate()-Methode der View-Klasse, die zu Programmstart aufgerufen wird:
    void CDb2View::OnInitialUpdate()
    {
        m_pSet = &GetDocument()->m_db2Set;
        CRecordView::OnInitialUpdate();
        GetParentFrame()->RecalcLayout();
        ResizeParentToFit();
    
        // Wird für die Formatierung des Strings gebraucht
        CString zwsp;
        
        // Auf ersten Datensatz setzen
        m_pSet->MoveFirst();
        
        // Alle Datensätze durchlaufen
        while (!m_pSet->IsEOF())
        {
            // Formatierte Ausgabe: "Artikelnummer, Artikelname"
            zwsp.Format("%d, %s", m_pSet->m_Artikel_Nr, m_pSet->m_Artikelname);
            
            // In ListBox eintragen
            m_list.AddString(zwsp);
            
            // Zum nächsten Datensatz springen
            m_pSet->MoveNext();
        }
    }

    Erklärung des Codes:

  5. Projekt kompilieren und ausführen: Die Anwendung zeigt jetzt alle Artikel aus der Nordwind-Datenbank formatiert in der ListBox an.

Hinweis: Dieses Beispiel zeigt eine alternative Darstellungsweise im Vergleich zu Tutorial 1. Statt eines RecordViews mit Navigationselementen werden hier alle Datensätze auf einmal in einer ListBox angezeigt.

Programmierecke.NET