informatikerin86 Geschrieben 20. April 2009 Teilen Geschrieben 20. April 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 20. April 2009 Teilen Geschrieben 20. April 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
informatikerin86 Geschrieben 20. April 2009 Autor Teilen Geschrieben 20. April 2009 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: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kati82 Geschrieben 20. April 2009 Teilen Geschrieben 20. April 2009 Soweit ich weiß kannst du mit Datasets mehrere Tabellen, also DataTables, zusammenfassen. Wenn du nur eine Tabelle hast, brauchst du also nicht unbedingt ein Dataset. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
informatikerin86 Geschrieben 20. April 2009 Autor Teilen Geschrieben 20. April 2009 Ich bin für heute (gezwungenermaßen) fertig mit programmieren. Jetzt "genieße" ich meinen freien Nachmittag. Morgen früh bin ich sicher dankbar für jede weitere, hilfreiche Antwort. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
informatikerin86 Geschrieben 21. April 2009 Autor Teilen Geschrieben 21. April 2009 Guten Morgen, leider bin ich heute morgen noch nicht weiter gekommen. Die Daten sind im DataSet drin, ich kann sie in ein Textfeld ausgeben. Aber wie schaffe ich es das sie in der ListBox angezeigt werden??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DominikJ Geschrieben 21. April 2009 Teilen Geschrieben 21. April 2009 For Each row As DataRow In table.Rows lbx.Items.Add(row(columnName).ToString()) Next Hat er doch schon gepostet. Müsste doch so klappen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
informatikerin86 Geschrieben 21. April 2009 Autor Teilen Geschrieben 21. April 2009 (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 21. April 2009 von informatikerin86 weitere Problemdefinitin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DominikJ Geschrieben 21. April 2009 Teilen Geschrieben 21. April 2009 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 Hast du auch ne Meldung? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
informatikerin86 Geschrieben 21. April 2009 Autor Teilen Geschrieben 21. April 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DominikJ Geschrieben 21. April 2009 Teilen Geschrieben 21. April 2009 Und wo gibt er dir das beim Debuggen aus? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
informatikerin86 Geschrieben 21. April 2009 Autor Teilen Geschrieben 21. April 2009 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
informatikerin86 Geschrieben 21. April 2009 Autor Teilen Geschrieben 21. April 2009 was meinst du mit wo gibt er das aus? er bricht komplett ab und zeigt diese Meldung, danach lande ich automatisch in Form1 (obwohl der Fehler ja in Form5 auftritt) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DominikJ Geschrieben 21. April 2009 Teilen Geschrieben 21. April 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
informatikerin86 Geschrieben 21. April 2009 Autor Teilen Geschrieben 21. April 2009 (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 21. April 2009 von informatikerin86 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 24. April 2009 Teilen Geschrieben 24. April 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.