Autor Beitrag
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 14.09.06 16:55 
Hallo,

ich verstehe nicht, wie ich den Inhalt eines Datenfelds auf DBNull abfragen kann (um die entsprechende Exception zu vermeiden):
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
DataRow dr = dcS.Rows.Find(Daten);
//  nur übergeben, wenn wirklich vorhanden
if (dr != null) {             
    //  t1 führt ggf. zum Wert DBNull
    Type t1 = dr[3].GetType();
    //  keine der folgenden Varianten funktioniert
    if (!(t1 is DBNull))
    //  if (dr[3] != null)
    //  if (dr[3] != DBNull)
    //  if (dr[3] != DBNull.Value)
        Pfad = (string)dr[3];
}

Entweder es gibt verschiedene Compiler-Fehler, oder es gibt eine Laufzeit-Exception.

Wie muss ich die if-Abfrage formulieren, damit die Pfad-Zuweisung nur ausgeführt wird, wenn die DataColumn dr[3] wirklich einen Inhalt hat (dass es sich dann um einen String handelt, kann ich voraussetzen)?

Danke! Jürgen

Moderiert von user profile iconKlabautermann: Code- durch C#-Tags ersetzt
schneegurke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 19

Win XP
C# (VS 2003, 2005 Express)
BeitragVerfasst: So 17.09.06 00:12 
Also ich glaube

ausblenden C#-Quelltext
1:
2:
3:
4:
if (!dr.IsNull(3))
{
    Pfad = (string)dr[3];
}


müsste das richtige Ergebnis erzielen.
JüTho Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 18.09.06 11:00 
user profile iconschneegurke hat folgendes geschrieben:
Also ich glaube
ausblenden C#-Quelltext
1:
2:
3:
4:
if (!dr.IsNull(3))
{
    Pfad = (string)dr[3];
}

müsste das richtige Ergebnis erzielen.

Genau so ist es! Danke recht herzlich. Jürgen

PS. Es ist mir ja klar, dass an verschiedenen Stellen eine Methode auf eine 'übergeordnetete' Klasse zu richten und als Parameter ein Index anzugeben ist; ich bin aber nicht auf die Idee gekommen, dass DataColumn.IsNull über die entsprechende DataRow zu prüfen ist. Also laufe ich mit meiner Suche in der Doku in die Irre.