Announcement

Collapse
No announcement yet.

DataSet -> BindingSource in DataGridView anzeigen + Spalten verbinden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DataSet -> BindingSource in DataGridView anzeigen + Spalten verbinden

    Hallo Zusammen,

    ich habe eine MS-SQL DB die ich in ein DataSet lade. Mithilfe von BindingSources lasse ich die Tabelle des DataSet in einem DataGridViews anzeigen.
    Bei meiner "Problem Tabelle" handelt es sich um die tbl_Rufnummer die wie folgt aufgebaut ist:
    | RufnummerID | LandID (für die Landesvorwahl) | Vorwahl | Ortsdurchwahl | Durchwahl |

    Diese Tabelle möchte ich aber in einer Spalte des DGV´s wiedergeben die folgendermaßen aussehen soll.

    | [Landesvorwahl] ([Vorwahl]) [Ortsdurchwahl]-[Durchwahl] |
    Beispiel: 0049 (5555) 1254-99

    Bisher habe ich es so gelöst, dass ich alle Spalten im DGV unsichtbar schalte und eine neu erstelle. In einer Sub lasse ich diese Spalte mit einer For-Each-Schleife füllen. Auslösen lass ich diese Sub durch das "CurrentItemChanged"-Event der BindingSource und beim "Load"-Event beim öffnen der Form. Mir gefällt diese Lösung überhauptnicht, auch wenn sie funktioniert.

    Wenn Jemanden eine saubere Lösung für das Problem einfällt, währe ich super dankbar. Vielen Dank!

    Liebe Grüße
    Christian

  • #2
    Hallo Christian,

    die neue Spalte kannst du automatisch als "berechnete Spalte" aus den vorhandenen erzeugen lassen, siehe DataColumn.Expression sowie Creating Expression Columns. Allerdings sind solche Spalten nicht zur Bearbeitung freigegeben.

    Gruß Jürgen

    Comment


    • #3
      Vielen Dank!

      Hallo Jürgen,

      genau das habe ich gesucht... Perfekt!

      Anbei eine kleine Beschreibung:
      - Bei dem DataTabel (eines DataSet´s) eine neue Spalte anlegen.
      - Das Property Expression erzeugt das gewünschte Ergebnis.
      Beispiel: "Parent(FK_tbl_Rufnummer_tbl_Land).LandVorwahl + ' (' + Vorwahl + ') ' + Ortsdurchwahl + IIF(Durchwahl > '', '-' + Durchwahl, '')"
      (Eigentlich recht simpel wenn man es weiß )

      Vielen Dank!

      Comment

      Working...
      X