Ich habe eine Datentabelle in meinem Dataset verhindern, dass diese Felder hat:Kann keinen bindenden Fehler
und ich habe ein WPF-Fenster auf diese Felder, die die Anwender Daten in Kontrollen entsprechen. Die Kontrollen an einen datarow gebunden sind wie folgt:
DataContext = myApp.Tables("VehicleExpenses").NewRow
Wenn ich das Formular zur Laufzeit lade ich diesen Fehler:
System.InvalidCastException was unhandled by user code
HResult=-2147467262
Message=Conversion from type 'DBNull' to type 'Long' is not valid.
und das ist die Zeile, die den Fehler auslöst (dies wird erzeugt Code):
Return CType(Me(Me.tableVehicleExpenses.CategoryIDColumn),Long)
So ist der Fehler offensichtlich, aber ich habe keine Ahnung, wie VB zu verhindern, einen Nullwert aus der neuen Reihe ziehen. Ich habe versucht, einen blockierenden Konverter zu schreiben und UpdateSourceTrigger = Explicit zu setzen, aber keiner löst das Problem.
Ist es Nullable? Versuchen Sie 'Return CType (Me (Me.tableVehicleExpenses.CategoryIDColumn), Long?)' – djv
Und Sie sind sicher, dass es in dieser Spalte keinen Nullwert gibt? – Searching
@Verdoline Das ist generierter Code, nicht etwas, das ich geschrieben habe, also bin ich SEHR widerwillig darin, dort herumzuspielen. Nein, CategoryID ist nicht nullbar und sollte es nicht sein. Das ist ein Pflichtfeld. – SezMe