Announcement

Collapse
No announcement yet.

kompliziert berechnetes Feld einfügen

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

  • kompliziert berechnetes Feld einfügen

    Hallo zusammen,

    ich habe eine Tabelle (Proben) die eine Spalte für Probennummern (z.B. 081289-1-v0) enthält.

    Eine andere Tabelle enthält die zugehörigen (n-)Ergebnisse.
    Proben werden in GridView1, Ergebnisse in GridView2 angezeigt.
    (Relationen etc. sind vorhanden und es wird auch richtig 1:n angezeigt)

    Nun muss ich alle Ergebnisse der Proben die z.B. mit 081289 anfangen anzeigen. D.h. ab '-' abschneiden.

    Dafür habe wollte ich in die Datatable eine berechnete Spalte einfügen und diesen als Schlüsselnehmen. Leider geht in Expression kein .Split('-')[0];

    ... soll ich eher mit detaildataview.Filter = Probennummer + " like..." arbeiten?

    Ich weiß nicht wie das gehen soll bzw. was ich tun soll!?


    Vielen Dank!
    Can

  • #2
    Ich würde es mit detailview.Filter probieren. Im Prinzip musst du dort nur eine WHERE-clause eingeben, nur eben ohne WHERE. In deinem Fall wäre das dann zum Beispiel sowas wie:
    [highlight=csharp]
    detailview.Filter = Probenummer + "LIKE '" + Probenummer.Split('-',1) +"%'"
    [/highlight]
    Hab ich nicht getestet, müsste aber so ungefähr hinhauen.
    Just be DRY and KISS your customers.

    Comment


    • #3
      Prinzipiell könntest du das berechnete Feld jederzeit verwenden, da in Expression die "gängisten" T-SQL Befehle verarbeitet werden. In deinem Fall wär das SubString.

      Aber wie Frischmilch bereits gezeigt hab ist es mit dem DetailView definitiv "einfacher" und besser gelöst. Soweit ich mich entsinnen kann, kann man sogar in der Filter Eigenschaft mit T-SQL Befehlen arbeiten. Eine detailierte Liste welche Expressions unterstützt werden findest du in der MSDN.

      Viele Grüße
      Stefan
      Mitarbeiterführung ist:
      Den Mitarbeiter so schnell über den Tisch zu ziehen, dass er die Reibungshitze als Nestwärme empfindet!

      Comment


      • #4
        Leider kann ich kein Substr benutzen, da die Probennummer bis zum ersten '-' eine variable Länge hat.

        In welches Ereignis vom masterview schreibe ich die detailview-Filteranweisung hin?

        Die Ereignisse sind für mich noch etwas undurchsichtig.

        Vielen Dank!
        Can

        Comment


        • #5
          Wieso Ereignis?! Ich dachte bisher es geht darum die Anzeige von Daten im GridView zu Filtern?
          Wann das passieren soll kann ich dir nicht sagen, da ich deinen Programmablauf höchstens grob erraten kann.

          Wenn du etwas gegen Split() hast, kannst du auch mit IndexOf() und Substring() arbeiten. Was aber letzten Endes aufs gleiche Ergebnis führt. Und schließlich giebts immer noch die Möglichkeit den Teilstring vor dem Filter zu"erzeugen" um dann nur eine Variabel zu nutzen.
          Just be DRY and KISS your customers.

          Comment


          • #6
            Hallo,

            ich habe wohl mein Problem zu ungenau geschildert. Der Lösung bin ich aber trotzdem näher gerückt. Eigentlich sollte ich entweder mit Relationen (wo es geht) oder mit Filtern arbeiten. Beides zusammen klappt nicht so einfach bei einer Anfängerin.

            Eine kleine Frage habe ich noch:

            Gibt es Performance-Unterschiede beim 'navigieren' über eine DataView und eine DataGridView?

            Danke nochmals!
            Can

            Comment


            • #7
              DataView und DataGridView sind zwei paar Stiefel. Die Klasse DataView um eine View von den im Speicher gehaltenen Tabellen (DataTable) Erzeugen zu können.
              Das DataGridView ist ein UI Element (ein Control), welches in einer GUI angezeigt werden kann. Die Daten welche ein DataGridView anzeigt können zum Beispiel von einer DataTable kommen, oder von einer BindingSource,... oder von einer DataView.
              Just be DRY and KISS your customers.

              Comment

              Working...
              X