Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leute,

falls jemand neues meine alten Beiträge nicht gelesen hat: Ich schreibe mit VB.net eine DB-Anwendung.

Nun stehe ich wieder vor einem neuen Problem, mein zweites heute :)

Ich habe mehrere Tabellen in der DB mit einem gleichnamigen Key. Scheinbar muss ich da für jede Tabelle eine Abfrage machen.

Jedenfalls habe ich nun 8 Abfragen die in 8 verschiedenen DataSets abgespeichert werden.

Wie bekomme ich es nun hin, dass der Inhalt der DataSets in die ListBox übernommen werden? Eine nach der anderen? Es sind variabel keine, eine oder mehrere Werte die in der DataSet gespeichert werden.

Kann mir jemand einen Tipp geben wie ich weiterkommen kann?

Grüße Informatikerin

Geschrieben

Du kannst in DataSets auch mehrere Tabellen speichern (und verknüpfen [referenzielle Integrität usw.]).

Ansonsten (ungetestet):

Private Sub fillListBox(ByRef table As DataTable, ByVal columnName As String, ByRef lbx As ListBox)

        lbx.BeginUpdate()

        lbx.Items.Clear()

        For Each row As DataRow In table.Rows

            lbx.Items.Add(row(columnName).ToString())

        Next

        lbx.EndUpdate()

End Sub

geht natürlich auch noch hübscher, aber erfüllt seinen Zweck.

Geschrieben

Danke für deine schnelle Antwort

Ein DataSet für alles zu benutzen habe ich mir auch schon überlegt, dachte mir so wäre es vielleicht einfacher zu durchschauen woher welche Daten kommen.

Du benutzt in deinem Beispiel DataTable und dann table.row

ist das dasselbe wie DataSet? er nimmt mir das nämlich nicht. ich hab auch versucht meine tabelle statt table einzutragen, das funktioniert nur leider nicht. :confused:

Geschrieben (bearbeitet)

hallo dominik,

ich steh etwas auf dem schlauch, wohl schon seit gestern...

er zeigt mir bei table einen Fehler an, der will das ich es deklariere, ich hab schon alles mögliche versucht, aber es klappt leider nicht

edit:

so rufe ich die Funktion auf:

fillListBox(DataSet321.Tables("[Prozessdaten 2338]"), "SAP-Nr", ListBox1)

Bearbeitet von informatikerin86
weitere Problemdefinitin
Geschrieben

momentan lautet die meldung:

"Eine nicht behandelte Ausnahme des Typs 'System.NullReferenceException' ist in system.windows.forms.dll aufgetreten.

Zusätzliche Informationen: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

Mit der bin ich schon befreundet, die kenne ich bestens, allerdings in anderem Zusammenhang, deshalb sagt sie mir nun gar nichts. :)

Geschrieben

Ich habe eine Möglichkeit gefunden aus einem DataSet auszulesen in dem ich einfach mal alles auskommentiert und über die Eigenschaften der ListBox die DataSource und DisplayMember angeben habe.

Das funktioniert jetzt auch, so habe ich aber nicht die Möglichkeit mehrere Datasets auszuelesen. Weiterbasteln... :(

Geschrieben

Aber der VB.Net Debugger gibt dir doch normalerweise an an welcher Position im Sourcecode der Fehler auftrat.

Wennich in deiner Fillbox Routine mal nen breakpoint setzen und gucken wo er rausfliegt.

Geschrieben (bearbeitet)

Ich hab aufgegeben nach dem Fehler zu suchen und hab mein komplettes Form umgestellt, damit funktioniert es jetzt nicht nur, es erleichtert mir sogar später enorm die Arbeit.

Trotzdem Danke für deine Mühe Dominik!!!

Edit:

Der Debugger gibt mir in Form1 die erste Zeile als Position des Fehlers aus, einen breakpoint zu setzen hat da auch nichts geholfen

Bearbeitet von informatikerin86
Geschrieben

Du benutzt in deinem Beispiel DataTable und dann table.row

ist das dasselbe wie DataSet?

Nein.

Ein DataSet enthält weit mehr als nur die Tabellen, da sind auch Sachen zur Visualisierung und Updating etc. drin.

DataSet.Tables Property (System.Data)

so rufe ich die Funktion auf:

fillListBox(DataSet321.Tables("[Prozessdaten 2338]"), "SAP-Nr", ListBox1)

Sicher, dass die eckigen Klammern, da mit reingehören?

Ich weiß nur, dass Access z.B. eckige Klammern nimmt, um Sonderzeichen (z.B. Leerzeichen) in Tabellennamen zu benutzen, aber ob die dann auch so im DataSet verwendet werden...

momentan lautet die meldung:

"Eine nicht behandelte Ausnahme des Typs 'System.NullReferenceException' ist in system.windows.forms.dll aufgetreten.

Zusätzliche Informationen: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

Jaja, die NRE ist was Tolles... :floet:

Man müsste wissen, was null ist - ich kann mir vorstellen, dass die DataTable, wie oben beschrieben, nicht mit eckigen Klammern gefunden werden kann und deswegen null zurück gegeben wird.

Ansonsten einfach mal alle Parameter prüfen.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...