VB.NET: Der Wert darf nicht NULL sein. Parametername: dataSource
In VB.Net (Visual Studio Version 16.11.40) soll an ein Datagridview eine Datatable gebunden werden. Lange funktionierte wie üblich: DGV.Datasource = xxx.Dataset.Tables("T_xxx"). Ich habe im Projekt Mehreres geändert, weiß aber nicht mehr alle Änderungen. Jetzt sagt der Debugger an dieser Stelle: ... Der Wert darf nicht NULL sein. Parametername: dataSource ...
Ich habe gesucht, die mir noch erinnerlichen Änderungen rückgängig gemacht, finde aber die letztlich die Ursache nicht. Das ansonsten hilfreiche Internet ist bei diesem Fehler nicht sehr ergiebig. Was bzw. wie könnte ich debuggen, um der Ursache näher zu kommen ? Die datatable hat 1 Row mit 7 Columns. Nichts besonderes (1 PK, sonst "normale" integer und string Spalten).
Danke, PCFJKG
Ich habe gesucht, die mir noch erinnerlichen Änderungen rückgängig gemacht, finde aber die letztlich die Ursache nicht. Das ansonsten hilfreiche Internet ist bei diesem Fehler nicht sehr ergiebig. Was bzw. wie könnte ich debuggen, um der Ursache näher zu kommen ? Die datatable hat 1 Row mit 7 Columns. Nichts besonderes (1 PK, sonst "normale" integer und string Spalten).
Danke, PCFJKG
Please also mark the comments that contributed to the solution of the article
Content-ID: 668109
Url: https://administrator.de/contentid/668109
Printed on: October 15, 2024 at 07:10 o'clock
18 Comments
Latest comment
Die ursprüngliche Meldung besagt doch, das du der Datasource einen NULL-Wert übergibst,
also ist höchstwahrscheinlich irgendwas mit deinem Dataset/Datatable nicht in Ordnung
Sollte sich aber bei Debuggen schnell finden lassen, was steht denn in der EX-Message und im Stacktrace wenn der Fehler auftritt?
also ist höchstwahrscheinlich irgendwas mit deinem Dataset/Datatable nicht in Ordnung
Sollte sich aber bei Debuggen schnell finden lassen, was steht denn in der EX-Message und im Stacktrace wenn der Fehler auftritt?
Zitat von @PCFJKG:
Dim FAR As F_Abrechnungen = F_Abrechnungen
F_Abrechnungen ist eine Form. Hier wird auf sie in einer anderen Klasse verwiesen. Zugegeben etwas ungewöhnlich, hat aber tatsächlich bisher funktioneirt.
Nä das ist bäh, fällt dir aber auch jetzt auf die Füße wie du siehst . Und wieso eine neue Variable wenn die die ja schon direkt im Zugriff hast??Dim FAR As F_Abrechnungen = F_Abrechnungen
F_Abrechnungen ist eine Form. Hier wird auf sie in einer anderen Klasse verwiesen. Zugegeben etwas ungewöhnlich, hat aber tatsächlich bisher funktioneirt.
FAR.DS.Tables("T_ICD10")
Eine Form hat per Default keine Property Namens DS, wird diese überladen?Deswegen sag ich ja Breakpoint setzen dann siehst du solche Schweinereien sofort.
Wie gesagt, Variablen gleich benennen wie eine Klasse führt zu solchen Problemen. Das solltest du als erstes ändern.
Außerdem ist das Zugreifen auf externe Objekte aus der Funktion schlechter Stil. Du gehst davon aus das das Objekt existiert ohne das du es prüfst, ohne Try Catch führt das dann zusätzlich zum kompletten Abschmieren.
Außerdem ist das Zugreifen auf externe Objekte aus der Funktion schlechter Stil. Du gehst davon aus das das Objekt existiert ohne das du es prüfst, ohne Try Catch führt das dann zusätzlich zum kompletten Abschmieren.