Laden...

NULL Werte Fehler bei Veröffentlichung / im DEBUG ohne Fehler

Erstellt von tom-cat vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.394 Views
T
tom-cat Themenstarter:in
77 Beiträge seit 2010
vor 13 Jahren
NULL Werte Fehler bei Veröffentlichung / im DEBUG ohne Fehler

Hallo zusammen,

ich komme hier einfach nicht weiter... Ich lese mittels einer PROC Daten aus einer MSSQL Datenbank aus und stelle diese in einem Grid dar.
Alles soweit kein Problem. In der Tabelle befinden sich NULL Werte die ich im Reader auch mittels:

if (!reader1.IsDBNull(0))
                    {
                        int _FID = reader1.GetInt32(0);
                        l.ID1= _FID;
                    }

herrausfiltere.
Dann starte ich mein Projekt und alles Funktioniert ohne Probleme.
Veröffentliche ich nun das Projekt auf unserem Webserver, bekomme ich immer den Fehler:

Fehler bei BuildInvoiceTable:System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values. at System.Data.SqlClient.SqlBuffer.get_Int32() at System.Data.SqlClient.SqlDataReader.GetInt32(Int32 i) at xxx.xxx.xxx.BuildInvoiceTable(String ConnString, String _ForeignInvoiceID) in 

angezeigt.
Wie gesagt wenn ich es Debuge und auch mir dort die Werte dann im Reader selber anschauen, stehen zwar 0 drin, jedoch bekomme ich die Tabelle sauber angezeigt.

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Wie veröffentlichst Du das Projekt?
Ist die Datenbank diesebe die Du auch für Debug benutzt?
Bist Du sicher, daß der Fehler nicht in einer anderen Spalte auftritt (die vielleicht nicht geprüft wird)?

Fang doch mal die Exception und logge sie mit -> vielleicht gibt es da noch einen Hinweis.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

T
tom-cat Themenstarter:in
77 Beiträge seit 2010
vor 13 Jahren

Also ich veröffentliche mein Projekt über Dateiebene. Das hat bis jetzt immer gut funktioniert.

Ich habe folgendes noch festgestellt.
Wenn alle Spalten mit Werten belegt sind, kommt kein Fehler (Logisch da ja auch kein NULL Wert existiert in den Spalten)
Sobald eine Spalte mit NULL vorhanden ist, bekomme ich den Fehler, jedoch fange ich diesen ja im Reader wie oben beschrieben ab.
Es scheint mir so, das auf dem Veröffentlichten Projekt die Funktion gar nicht greift (also den NULL Wert abfangen).
Lasse ich die Abfrage raus und Debuge bekomme ich logischerweise auch dort den Fehler.

Auch das Log sagt mir im Debug Modus das alles ok ist, auch wenn ich die einzelnen Zeilen Debuge, sehe ich das dort ein NULL Wert ist und die If Schleife greift.

Ich kann mir das irgendwie nicht erklären.
Die .NET Umgebung ist auf dem Webserver die gleiche wie auf dem Rechner wo ich programmiere.

16.807 Beiträge seit 2008
vor 13 Jahren

Ich arbeite nicht mit irgendwelchen Readern, daher nur eine Ahnung:
Kann das sein, dass der Reader das DBNull in ein null convertiert?
Daher IsDbNull() == false ?

Zieh Dir doch mal den Wert ein eine Variable und gib den Wert aus.
Wäre für die weitere Programmierung dann sowieso einfacher als den Wert zweimal zu ziehen.

1.378 Beiträge seit 2006
vor 13 Jahren

Stimmen die Dateiversionen zusammen. Ist die Assembly wirklich die Gleiche? Ich hab auch schon mal ewig gesucht bis ich drauf gekommen bin, dass eine Assembly beim Batch-Script nicht (richtig) mitkopiert wurde und somit immer alter Code ausgeführt wurde.

Lg XXX

T
tom-cat Themenstarter:in
77 Beiträge seit 2010
vor 13 Jahren

xxxprod, super danke dir !

ja bis man da drauf auch erstmal kommt ! War genau das problem bei mir ...
Habt vielen dank für eure Anregungen ...

Gruß