tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
11
ZUGRIFFE
804
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Bella_Isy Bella_Isy ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    114
    Guten Morgen zusammen,

    ich habe seit längere Zeit das Problem, dass ich den System.DBNULL typ nicht abfangen kann!

    In ein Dataset habe ich Daten von einer Datenbank eingelesen. Mit hilfe einer Schleife möchte ich nun ein Listenfeld füllen!
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    foreach (DataTable dt in this.dSKunden.Tables)
    {
                    int i = 0;
     
                    if (this.cmbSucheWaehlen.SelectedItem == "Name")
                    {
                        i = dt.Columns.IndexOf("Name");
                    }
                    else if (this.cmbSucheWaehlen.SelectedItem == "Firma")
                    {
                        i = dt.Columns.IndexOf("Firma");
                    }
                    else if (this.cmbSucheWaehlen.SelectedItem == "Kundennummer")
                    {
                        i = dt.Columns.IndexOf("Kundennummer");
                    }
                    else if (this.cmbSucheWaehlen.SelectedItem == "Ort")
                    {
                        i = dt.Columns.IndexOf("Ort");
                    }
     
                    foreach (DataRow dr in dt.Rows)
                    {             
                        if (dr[i] != "")
                        {
                            this.lstErgebnis.Items.Add(dr[i]);
                        }
                        else
                        {
                            i = 0;
                        }
                    }
    }
    "i" brauche ich deshalb, weil mein Dataset 5 Spalten hat und der Benutzer über eine Combobox das Anzeigekriterium auswählen kann. Daraus ergibt sich dann der entsprechende index wert i.

    Mein Problem:
    Es gibt jetzt auch den Fall, dass das ausgewählte kriterium leer ist und dieser leere Eintrag soll natürlich nicht in der Liste erscheinen.

    In VB.net kann ich dies sehr gut abfangen aber in C# habe ich es nicht geschafft. Ich habe gerstern schon den ganzen Tag versucht es abzufangen aber ohne erfolg.

    Bitte Bitte kann mir wer helfen?


    Vielen Dank jetzt schon mal

    Isabelle
     
    Achtung******!! Diese Nachricht kommt von einer Frau.

  2. #2
    Registriert seit
    Nov 2003
    Ort
    Bergen / Norway
    Beiträge
    309
    Morgen

    Versuchs mal mit

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    
    if (dr[i] != null)
    {
       this.lstErgebnis.Items.Add(dr[i]);
    }
    else
    {
       i = 0;
    }

    Greetz
     
    "Gott ist tot! Gott bleibt tot! Und wir haben ihn getötet." - Friedrich Nietzsche

  3. #3
    Avatar von Christian Kusmanow
    Christian Kusmanow Christian Kusmanow ist offline Mitglied Diamant
    Registriert seit
    Aug 2004
    Ort
    Aachen (NRW)
    Beiträge
    2.208
    Blog-Einträge
    15
    Hi Isabelle!

    Zitat Zitat von Bella_Isy
    Es gibt jetzt auch den Fall, dass das ausgewählte kriterium leer ist und dieser leere Eintrag soll natürlich nicht in der Liste erscheinen.
    Welches Kriterium? Welches man in der ComboBox auswählt oder meinst einen nicht vorhandenen Wert in der dr?
     
    MfG,
    Christian

    Wer sein Problem definiert, hat es schon halb gelöst!

    Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.

    The Code Project! - C# Programming | C# / VB.NET Pendants

    Regeln + Netiquette

    Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
    und vor allem nicht auf das, was euch die IHK dazu erzählt!
    Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...

  4. #4
    Bella_Isy Bella_Isy ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    114
    Morgen Greetz,

    das funktioniert nicht. Ich denke es liegt daran, dass der leere Wert von Type System.DBNULL ist und nicht ein einfacher null.
    Ich habe auch schon ausprobiert eine variable vom Type System.DBNull zu erzeugen und in die bedingung zu setzen
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    object help = new object[]{System.DBnull};
    if (dr[i] != help)
     {
         this.lstErgebnis.Items.Add(dr[i]);
    }
    else
    {
         i = 0;
    }
    Dies funktioniert leider auch nicht!

    Isabelle
     
    Achtung******!! Diese Nachricht kommt von einer Frau.

  5. #5
    Avatar von Christian Kusmanow
    Christian Kusmanow Christian Kusmanow ist offline Mitglied Diamant
    Registriert seit
    Aug 2004
    Ort
    Aachen (NRW)
    Beiträge
    2.208
    Blog-Einträge
    15
    Lass Dir mal den Type des Datensatzelements ausgeben...
     
    MfG,
    Christian

    Wer sein Problem definiert, hat es schon halb gelöst!

    Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.

    The Code Project! - C# Programming | C# / VB.NET Pendants

    Regeln + Netiquette

    Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
    und vor allem nicht auf das, was euch die IHK dazu erzählt!
    Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...

  6. #6
    Bella_Isy Bella_Isy ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    114
    Hallo cosmochaosmaker,

    Das Datenset habe ich mit Kundeninformationen aus einer Datenbank gefüllt!

    Also der Benutzer kann über eine Combobox die Folgenden Kriterium wählen
    1. Name
    2. Kundennummer
    3. Firma
    4. Ort
    In einem listbox soll nun eine Liste erscheinen vom ausgewählten Kriterium! Die Daten für die Listbox sind in einem DS gespeichert.
    Wenn jetzt z.B. in der Combobox "Name" ausgewählt wird soll in der Listbox eine Auflistung aller Namen die im Datenset gefunden wird aufgelistet werden. Im Beispiel steht dann z.b. in der Listbox
    1. Mayer
    2. Müller
    3. Schmied
    Die Listbox wird ja gefüllt! Aber es gibt nun auch den Fall das keine Name eingetragen ist sondern nur eine Firmanamen zu finden. Das führt dazu das das Feld Name bei solchen Kunden im Datenset leer ist und in der Listbox wird für diesen Kunden nur eine Leere Zeile angezeigt -> Logisch weil ja kein Name im Datenset gespeichert ist. Ich möchte aber das solche Kunden wenn das Kriterium "Name" ausgewählt ist nicht mit angezeigt wird.
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken C# Problem-leer.jpg  
     
    Achtung******!! Diese Nachricht kommt von einer Frau.

  7. #7
    Bella_Isy Bella_Isy ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    114
    Falsches Bild
     
    Achtung******!! Diese Nachricht kommt von einer Frau.

  8. #8
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Wieso nicht:

    Code csharp:
    1
    2
    3
    4
    5
    
    if (dr[i].IsNull) {
      // It's null juhu
    } else {
      // Do what you want to do
    }
     

  9. #9
    Registriert seit
    Nov 2003
    Ort
    Bergen / Norway
    Beiträge
    309
    Zitat Zitat von Norbert Eder
    Wieso nicht:

    Code csharp:
    1
    2
    3
    4
    5
    
    if (dr[i].IsNull) {
      // It's null juhu
    } else {
      // Do what you want to do
    }
    Ist das nicht das gleiche wie ich es oben gepostet hab?

    Greetz
     
    "Gott ist tot! Gott bleibt tot! Und wir haben ihn getötet." - Friedrich Nietzsche

  10. #10
    Bella_Isy Bella_Isy ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    114
    Hallo Norbert,

    wenn ich das so mache bekomme ich folgenden Fehler:
    Fehler 9 'object' does not contain a definition for 'isNull'
     
    Achtung******!! Diese Nachricht kommt von einer Frau.

  11. #11
    Avatar von Christian Kusmanow
    Christian Kusmanow Christian Kusmanow ist offline Mitglied Diamant
    Registriert seit
    Aug 2004
    Ort
    Aachen (NRW)
    Beiträge
    2.208
    Blog-Einträge
    15
    Ein Object.GetType().ToString() ist des Rätzels Lösung.
    Prüf dann auf den Type den Du herraus gefunden hast.
     
    MfG,
    Christian

    Wer sein Problem definiert, hat es schon halb gelöst!

    Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.

    The Code Project! - C# Programming | C# / VB.NET Pendants

    Regeln + Netiquette

    Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
    und vor allem nicht auf das, was euch die IHK dazu erzählt!
    Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...

  12. #12
    Bella_Isy Bella_Isy ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    114
    Danke, Danke
    es hat funktioniert ich habe das schon einmal ausprobiert allerdings hatte ich darmals keine Klammern gesetzt.

    Aber jetzt geht das ja so wie ich das will

    Danke an alle
     
    Achtung******!! Diese Nachricht kommt von einer Frau.

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 11.01.11, 21:40
  2. Antworten: 4
    Letzter Beitrag: 22.03.06, 20:50
  3. Antworten: 0
    Letzter Beitrag: 06.10.04, 14:03
  4. PROBLEM! Pinnacle 2 GB Begrenzung Windows 2000 DC 50 PROBLEM!
    Von hennym im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 6
    Letzter Beitrag: 17.09.03, 22:09
  5. Antworten: 6
    Letzter Beitrag: 13.06.02, 12:29