vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Filter für DatatView mit Distinct Spalten 
Autor: woha
Datum: 03.05.20 12:33

Hallo,


ich habe nun schon einige Tage daran herum probiert, hunderte Seiten im Netz durchsucht, aber bin - als relativer .NET Neuling - leider zu keiner vernünftigen Lösung gekommen.

Es geht um das Filtern einer DataTable anhand einer eindeutigen Spaltenkennung.


Nehmen wir als einfache Beispiel foglene kleine Tabelle:


Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
With dtTest
.Columns.Add("Id", GetType(Integer))
.Columns.Add("Vor", GetType(String))
.Columns.Add("Nach", GetType(String))

.Rows.Add(1, "Test", "Daten")
.Rows.Add(15, "Robert", "Wer")
.Rows.Add(18, "Norbert", "Wer")
.Rows.Add(20, "Silvia", "Was")
.Rows.Add(21, "Rudi", "Was")
.Rows.Add(33, "Alles", "Wer")
.Rows.Add(35, "Tim", "Burst")
.Rows.Add(37, "Allen", "Cylon")
End With


dgv1.DataSource = dvTest


End Sub



Hier kann ich leicht Reihenfilter für zBsp. die Nachnamenspalte setzen :

[u] dvTest.RowFilter = "Nach LIKE 'Wer'"


oder aber auch die Distinct Möglichkeit nutzen:


[u] dtFilter = dvTest.ToTable(True, "Nach")


Allerdings erhalte ich dann nur die letzte Spalte (Nachnamen) angezeigt.

Wie muss ich den Filter nun definieren, damit alle Spalten der DataTable dargestellt werden, aber eben nur für die eindeutigen Felder (Distinct Nachname)


Ich hoffe, ich konnte die Frage klar definieren,
und bedanke mich bereits jetzt für Eure Hilfe

mfg
Wolfgang
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: Manfred X
Datum: 03.05.20 21:58

Hallo!

Definiere, was Du unter "eindeutig" versteht. In Deinem Beispiel besitzt jede Zeile eine eigene ID und ist insofern eindeutig.
Ich vermute, Du verstehst unter "Eindeutigkeit" den Inhalt einer begrenzten Zahl von Spalten. Dann können aber auch nur diese Spalten angezeigt werden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: woha
Datum: 04.05.20 08:59

Hallo Manfred,



nein, unter "eindeutig" (was nun klarerweise von mir zweideutig verwendet wurde), meinte ich den Distinct Filter zBsp. auf die Spalte "Nach" zu setzen (Nachnamen) und nun jede Zeile (Row) mit allen Spalten ("ID", "Vor" und "Nach") auszugeben. Allerdings nur EINMAL pro Nachname.
Und da dann zBsp. das erste Vorkommnis davon zu nehmen.

Man sieht ja im Beispile, dass ich 3x "Wer" und 2x "Was" habe, Diese sollen dann nur mit jeweils der ersten Reihe gelistet bleiben, die anderen Vorkommnisse mögen unterdrückt sein.

In der Folge wäre es dann gut, die Anzahl der Vorkommnisse dazu zu schreiben, aber dies ist dann der nächste Schritt!

DANKE
mfg
Wolfgang
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: Manfred X
Datum: 04.05.20 09:35

Hallo!

Ein Datensatz-Filter prüft den Dateninhalt jedes einzelnen Satzes und beurteilt,
ob das gegebene Filterkriterium dort erfüllt ist - oder nicht.
Was Du anstrebst, ist eine Datensatz-übergreifende Operation. Beim Prüfen jedes
Datensatzes muss in den bereits gewählten Sätzen geschaut werden, ob der
aktuell zu beurteilende Kriteriums-Wert (Name) schon einmal selektiert worden
ist.
Eine solche Operation muss programmiert werden. Vermutlich benötigst Du zudem
eine weitere Spalte in der Auswahl-Tabelle, in der die Häufigkeit des Vorkommens
jeweils eingetragen wird.

Allerdings leuchtet mir Dein Vorhaben nicht ein. Du willst jeden Namen nur einmal,
aber welcher Datensatz bei Mehrfachvorkommen eines Namens gewählt wird, scheint
gleichgültig zu sein.
Das ist eine nicht eindeutig definierte Operation, weil es kein Sachkriterium
für die Wahl eines bestimmten Datensatzes gibt. Bei Datensätzen ist gewöhnlich
auch keine Reihungs-Information gegeben, d.h. die Sätze stehen "irgendwie"
hintereinander.

Wofür benötigst Du eine derartige Satz-Zusammenstellung ? Kann die Ausprägung
des Schlüsselwertes der Sätze als zusätzliches Auswahlkriterium verwendet werden ?
In dem Fall würde man zunächst die Sätze nach der Schlüsselspalte sortieren.

Edit: Eine Distinct-Operation filtert keine Datensätze, sondern prüft den Inhalt
einer Spalte.

Beitrag wurde zuletzt am 04.05.20 um 09:41:52 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: effeff
Datum: 04.05.20 09:48

Kann es sein, dass Du in Wirklichkeit ein GROUP BY haben möchtest und kein DISTINCT?

https://www.w3schools.com/sql/sql_groupby.asp

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Einfacher Vorschlag 
Autor: Manfred X
Datum: 04.05.20 10:16

Windows.Forms-Fprmular
Public Class frmFilter
 
    Dim dttest As New DataTable
    Dim dtselect As New DataTable
 
    Dim dgv As New DataGridView With {.Parent = Me, .Dock = DockStyle.Fill}
 
 
    Private Sub frmFilter_Load(sender As Object, e As EventArgs) Handles _
      MyBase.Load
 
        With dtTest
            .Columns.Add("Id", GetType(Integer))
            .Columns.Add("Vor", GetType(String))
            .Columns.Add("Nach", GetType(String))
 
            .Rows.Add(1, "Test", "Daten")
            .Rows.Add(15, "Robert", "Wer")
            .Rows.Add(18, "Norbert", "Wer")
            .Rows.Add(20, "Silvia", "Was")
            .Rows.Add(21, "Rudi", "Was")
            .Rows.Add(33, "Alles", "Wer")
            .Rows.Add(35, "Tim", "Burst")
            .Rows.Add(37, "Allen", "Cylon")
        End With
 
        dtselect = dttest.Clone
        dtselect.Columns.Add("Häufigkeit", GetType(Integer))
 
        Dim found As Boolean, l As Integer
 
        For i As Integer = 0 To dttest.Rows.Count - 1
            'Suche in übertragenen Sätzen
            found = False
            For k As Integer = 0 To dtselect.Rows.Count - 1
                If dtselect.Rows(k)("Nach").ToString = dttest.Rows(i)( _
                  "Nach").ToString Then
                    found = True : l = k : Exit For
                End If
            Next k
 
 
            If found Then
                'Name bereits vorhanden - Zählen
                dtselect.Rows(l)("Häufigkeit") = CInt(dtselect.Rows(l)( _
                  "Häufigkeit")) + 1
            Else
                'Name nicht vorhanden - Satz hinzufügen
                dtselect.Rows.Add(dttest.Rows(i).ItemArray)
                dtselect.Rows(dtselect.Rows.Count - 1)("Häufigkeit") = 1
            End If
        Next i
 
        dgv.DataSource = dtselect
    End Sub
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: woha
Datum: 04.05.20 10:27

Hallo Manfred,


mir ist natürlich ganz klar, dass es bei diesem Beispiel nicht leicht zu verstehen ist, wie es im Endcode ablaufen soll.
Nimm die Familiennamen und Vornamen usw. nur als Beispiel her.
Eine (oder mehrere Spalten) sind wirklich wichtig, andere dienen rein zur Info.
Ich habe nun die wichtigen bereits in einer Sammelspalte zusammengezogen, daher kann ich nach dieser "filtern" (Distinct).
Die anderen Infos sind Positionen, und andere Zusatzinfos.
Es geht nun darum jede "Familie" (wesentliche Spalte) einmal in der Liste zu sehen.

Unter Umständen ist die Idee mit der GROUP Funktion, den mir effeff empfohlen hat, der Ansatz, das muss ich mir aber noch näher ansehen.
Eventuell wäre ein kleiner Beispielcode damit hilfreich

Danke

mfg
Wolfgang
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einfacher Vorschlag 
Autor: woha
Datum: 04.05.20 10:42

Hallo Manfred,



Danke für das Beispiel,
ich werde es mir am Nachmittag (Abend) ansehen und ausprobieren.
In der Zwischenzeit schon ein recht herzliches Danke für die Hilfe

PS.: kennst Du Dich ev. auch mit der GROUP Funktion näher aus?

mfg
Wolfgang
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einfacher Vorschlag 
Autor: Manfred X
Datum: 04.05.20 11:00

Wenn Du Dir die Mühe machst, in der Forensuchmaschine
den Suchbegriff "GROUP" einzugeben (VB.Net-Foren, alles),
findest Du etliche Beispiele - einige davon zu LINQ-Group
sind auch von mir.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einfacher Vorschlag 
Autor: woha
Datum: 04.05.20 11:03

Hallo Manfred,


nochmals Danke für den Beispielcode, habe ihn schnell verwendet und getestet, und Ja, Ergebnis entspricht schon mal dem gewünschten Resultat.
Muss mir noch ansehen, wo die Spalten genau dazu kommen, denn momentan wird die Distinct Spalte dann als erstes in die neue Tabelle geschrieben.
Wenn ich die nun noch ganz nach hinten bekommen (wie Original) dann sind wir schon fast total gut unterwegs.


Nur noch die Frage: "Eine integrierte Filter Funktion für diese Aufgabe gibt es dann wohl nicht?"
D.h. meine Suche nach einer Lösung ohne zusätzlichen Loops (For) scheint nicht machbar zu sein.


Das mit der GROUP werde ich noch näher analysieren.

Danke schon mal an Alle
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einfacher Vorschlag 
Autor: woha
Datum: 04.05.20 11:15

Hallo Manfred,



mache ich sicher!
Werde mir das - wie gesagt - später näher ansehen.

War in den letzten Tagen viel auf Suche danach, habe auch vieles entdeckt, aber eben leider nichts wirklich passendes.

Danke
mfg
Wolfgang
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einfacher Vorschlag 
Autor: Manfred X
Datum: 04.05.20 11:39

Noch mal: Du filterst keine Datensätze. Und Du gruppierst Sie auch nicht.
Da es sich bei Deiner geschilderten Zielsetzung um eine "uneindeutige Operation"
handelt, ist so eine Funktionalität nicht als Standard implementiert.
Man könnte eventuell mit LINQ arbeiten, aber der erforderliche Code wäre
nicht wesentlich einfacher als mein Beispiel.

Die Reihenfolge der Datensätze und der Spalten legt man nicht in der Datenquelle,
sondern im Control (Benutzeroberfläche) fest.

Beitrag wurde zuletzt am 04.05.20 um 12:08:22 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einfacher Vorschlag 
Autor: woha
Datum: 04.05.20 13:59

Hallo Manfred,


OK, aber letztendlich dachte ich, ich filtere/ordne/suche bereits im Control
Denn die DataView der DataTable ist letztendlich wieder nur der Input für die finale Control den DataGridView.
Soll ich dann besser diesen filtern/ordnen usw.?

Ich hätte das mal so interpretiert, dass alle Operation mit Datensätzen (egal wo sie herkommen) weniger performant im GridView als in den DataViews stattfindet.

Und für mich als Laie stellt sich das herausnehmen - sorry - herausfiltern - mehrfach vorkommender Hauptwerte als Filter/Suche dar.

Aber die Aussage, dass es nicht schneller bzw. kürzer geht als mit den datarow copy ist schon eine gute Antwort.
Wollte nur einen einfachen - so einfach wie möglich - Code dafür finden.

Und wenn ich es richtig erlesen hätte, dann sollte es bei der GROUP Funktion auch die Option geben, dann nur mehr den ersten (oder letzten) Eintrag/Rekord) zu verwenden.

Aber ebne, der Zusatzcode mit den zusätzlichen Addierungsfeld (Anzahl) ist ja ohnehin das Sahnehäubchen, und das geht sicher nicht ohne Zusatz Loops, also passt die Lösung schon recht gut.

Danke nochmals, ev. finden wir ja noch zusätzliche Wege und Möglichkeiten,
aber zumindest gibt es schon mal eine Lösung

mfg
Wolfgang
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einfacher Vorschlag 
Autor: Manfred X
Datum: 04.05.20 14:36

"Und für mich als Laie stellt sich das herausnehmen - sorry - herausfiltern -
mehrfach vorkommender Hauptwerte als Filter/Suche dar."

Als Laie solltest Du zunächst aufhören, selbst zu denken. Das haben
die Entwickler von Programmiersprachen für Dich längst erledigt - du mußt
nur noch lernen zu verstehen, was und wie sie gedacht haben. Alles andere
führt Dich zielsicher in den Wahnsinn.

Die Datenquelle wird gewöhnlich aus einer Datenbank oder XML-Datei gefüllt.
Entscheidend ist dabei, dass die Synchronisierung zwischen interner Quelle
und externem Speicher erhalten bleibt (Update).
Direkte Zugriffe auf die Datenquelle im Code sollte man möglichst vermeiden.
Statt dessen nutzt man z.B. eine Bindingsource zum Sortieren und Filtern der
Datensätze oder man verwendet z.B. die Displayindex-Eigenschaft der Columns
in einem DatagridView-Control, um die Anzeige-Position einer Spalte festzulegen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einfacher Vorschlag 
Autor: woha
Datum: 04.05.20 15:02

Hallo Manfred,


ich werde es versuchen, das Denken zu beenden.
Auch wenn ich dann vermutlich in den Wahnsinn verallen werde!

Aber in diesem Fall sind die "Daten" 100% intern, da ich die Werte direkt im Programm ermitteln muss.
Sie haben also nichts mit einer externen XML Datei oder mit einer Datenbank zu tun.

Daher muss ich die Sortierung/Filterung usw. selber durchführen und kann sie nicht aus einer "Quelle" herausnehmen.
Meine Aufgabe ist es nur, sie entsprechend darzustellen, und auf unterschiedliche Benutzeranfragen, entsprechende Darstellungen zu liefern.

Stell Dir die Liste als Sammlung von Maßen einer Zeichnung vor.
Diese können nun mehrfach vorkommen, sollen aber in einer speziellen Darstellung nur einmal pro Nennwert gelistet sein.
In einer anderen Darstellung kommen dann die Infos zur Position am Blatt dazu, oder auch noch andere, die durchaus unterschiedlich sein können, aber am grundsätzlichen Nennmaß nichts ändern.


mfg
Wolfgang
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einfacher Vorschlag 
Autor: Manfred X
Datum: 04.05.20 16:08

Für mich hört sich das eher wie ein Master-/Detail-Problem an.
In einer Master-Tabelle werden Nenn- bzw. Basiswerte des Grundtyps
der Zeichnungen eingetragen, in einem untergeordneten Detail-Formular
stehen pro Nennwert (Datensatz) in der Master-Tabelle mehrere Datensätze mit
weiterführenden/speziellen Angaben zu den Varianten einer Basiszeichnung
(Verknüpfung durch eine Fremdschlüsselbeziehung).

Befasse Dich mal mit dem Thema "Normalisierung" einer Datenstruktur.

Beitrag wurde zuletzt am 04.05.20 um 16:09:46 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: Wobi
Datum: 05.05.20 02:49

Vermute ich auch, und dann kämen zusätzlich noch HAVING, SUM, COUNT (>0) AS (für den Alias) in Frage, oder auch noch ORDER BY für die Reihenfolge der Anzeige.

Ich glaube hier fehlen einfach SQL Kenntnisse, aber das kann man ja ändern....

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: woha
Datum: 05.05.20 13:59

Hallo liebe Leute,


ich bezweifle in keinster Weise, dass meine Kenntnisse in Sachen Programmierung nicht als fortgeschritten gelten können.
Ist auch gar nicht meine Aufgabe.
Aber - als Moderator eines anderen Forums - kenne ich sehr wohl die Situation, wenn Newbies Fragen stellen.
und vielleicht nur einmal mein Leitsatz als Trainer: Wir sind hier, weil wir etwas lernen wollen, dass wir bis dato noch nicht kennen und können.
Und daher ist es keine Schande Fragen zu stellen, eher im Gegenteil.

Ich habe also auch bewusst hier im Einsteiger Forum meine Frage gestellt, in der Hoffnung, Hilfe, Tipps und auch Ratschläge zu bekommen.
Allerdings hilft es mir persönlich - und vermutlich vielen anderen Neulingen - nicht all zuviel - nur ein Schlagwort als Antwort zu erhalten, oder den Hinweis, man kennt sich nicht aus und soll nachschlagen.
Das man sich nicht auskennt, ist eine klare Sache, sonst würde man hier ja auch nicht fragen.
Und versucht, den notwendigen Hinweis zu finden, das habe ich in den letzten Tagen zur Genüge, allerdings ohne Resultat oder Erfolg.

Auch hilft es manchmal, nur eine kleinen, aber notwendigen Tipp zu erhalten, oder den passenden Link.
Die paar Zeilen Code von Manfred waren der entscheidende Hinweis.
Es gibt eben keinen Filter oder keinen Linq Befehl, der das in einem Aufwasch erledigt, man muss etwas dazu schreiben.
Und was - DANKE an Manfred - das hast Du dann gemacht.
Allerdings wäre es auch hilfreich, nicht gleich immer an die größtmögliche Anwendung zu denken, nochmals, es gibt hier keine Datenbank und keine SQL Anbindung an irgend etwas, es sind nur selbst erzeugte Datensätze, die entsprechend dargestellt werden sollen.

Ich kenne aus meinem Forum auch die "vermeintlich" unverbesserlichen Fragesteller, aber bemühe mich - hoffentlich - trotzdem, deren Frage zu verstehen und darauf zu antworten.
Wir als "Profis" in unserem Gebiet sollten dieses erworbene Wissen dankend weiter geben, nicht mit erhobenen Zeigefingern da stehen und sagen: "nicht denken und nicht versuchen zu verstehen!"

"Nein, im Gegenteil, gerade weil wir es verstehen wollen sind wir hier!"

Nochmals, liebe Profis hier, ich bedanke mich wirklich für Eure Hilfe, denn Danke - dieses Problem ist nun gelöst, sogar gut gelöst.
Und ich hoffe, ich darf auch in Zukunft weiter Fragen stellen, um weiter zu lernen und mehr zu verstehen!
Denn darum geht es!

Danke
mfg
Wolfgang

PS.: Falls noch ein kurzes Beispiel zur richtigen Anwendung einer GROUP Funktion beim Erzeugen der DataView oder Datatable möglich ist, würde dies extrem hilfreich aber vor allem lehrreich sein.
Danke die Zweite!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: Manfred X
Datum: 05.05.20 15:03

Hallo!

Ich weiß nicht, womit wir uns diese Predigt verdient haben?
Von Anfang an habe ich versucht, die Problematik Deiner Fragestellung
deutlich zu machen.
Dein Fehler war, nach einer konkreten Programmierlösung zu fragen, statt zu
erklären, was Deine Ausgangslage ist und wie Dein Ziel aussehen sollte.
Erst in Deinem vorletzten Beitrag hast Du damit begonnen, Informationen
zu liefern, aus denen sich eventuell eine brauchbare Richtung ableiten
läßt. Du solltest Deine Daten anders aufbereiten, also in geeigneter Weise
relational (normalisiert) aufbauen. Dann verschwindet vermutlich
Dein Auswahlproblem sofort.

Ein kurzes Code-Beispiel für die Realisierung:
https://www.vbarchiv.net/forum/id22_i94845t94842_kaskadierte-datagridviews-mit-datarelations.html

Beitrag wurde zuletzt am 05.05.20 um 15:26:12 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: woha
Datum: 05.05.20 15:59

Hallo Manfred,


ich habe schon befürchtet, dass meine Antwort unter Umständen nicht ganz richtig ankommen kann.
Das war nicht das Ziel.

Daher sofort einmal Danke für den Link, werde mir das natürlich sobald wie möglich näher ansehen, und hoffe, dass ich daraus wieder etwas heraus nehmen und davon lernen kann.

Wir stehen hier wieder vor der recht typischen Situation, dass Dinge, die sich für den Neuling und Fragesteller, als klar und für ihn eindeutig ausnehmen, für einen alten Hasen und Kenner der Materie unklar und unverständlich darstellen.
Dachte mir, dass das Beispiel mit der selbst erstellten DataTable zeigt, dass wir keine SQL Anbindung haben,
dass ich mir bereits Gedanken zum Filtern und auch zum "eindeutigen" (Distinct" "Filtern" der Tabelle gemacht hatte und nur noch daran gerätselt habe, wie ich die anderen Spalten (Columns) in das Resultat hinein bekomme.

Aber das ist eben das Problem im Sprachgebrauch, zwischen dem Insider und den Aussenstehenden.

Aber nochmals, ich bin froh und dankbar, dieses Forum gefunden zu haben, bin dankbar für Eure Hilfe, und wollte nur noch darauf hinweisen, dass die Fragesteller hier eben nicht oder noch nicht die Profis sind.
That's it, and nothing more.

In diesem Sinne und auf hoffentlich ein baldiges "Wiederlesen"
mfg
Wolfgang
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: woha
Datum: 05.05.20 16:00

Hallo Manfred,


und dann och eine abschließende Frage zum Forum hier generell:

Ist es üblich und wenn ja, wo und wie, für Hilfe und gute Ratschläge "Likes" Unities" o.ä. zu vergeben, nur um zu zeigen, dass einem hier gut geholfen wurde?

mfg
Wolfgang

Beitrag wurde zuletzt am 05.05.20 um 16:01:13 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: Manfred X
Datum: 05.05.20 16:25

Nein!
Man sollte ggf. angeben, auf welche Weise in Hinweis weiter geholfen hat.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: woha
Datum: 05.05.20 18:48

Hallo Manfred,


also hier dann der Lösungshinweis:

Am besten für mich war der Beispielcode und da vor allem die Zeile mit


For k As Integer = 0 To dtselect.Rows.Count - 1

If dtselect.Rows(k)("Nach").ToString = dttest.Rows(i)( _
"Nach").ToString Then

found = True : l = k : Exit For
End If
Next k


If found Then
'Name bereits vorhanden - Zählen
dtselect.Rows(l)("Häufigkeit") = CInt(dtselect.Rows(l)( _
"Häufigkeit")) + 1
Else
'Name nicht vorhanden - Satz hinzufügen

dtselect.Rows.Add(dttest.Rows(i).ItemArray)

dtselect.Rows(dtselect.Rows.Count - 1)("Häufigkeit") = 1
End If




Also nochmals VIELEN DANK!

mfg
Wolfgang
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: Wobi
Datum: 06.05.20 03:23

Hallo,

Zitat:



als Moderator eines anderen Forums - kenne ich sehr
wohl die Situation, wenn Newbies Fragen stellen.
und vielleicht nur einmal mein Leitsatz als Trainer: Wir sind
hier, weil wir etwas lernen wollen, dass wir bis dato noch
nicht kennen und können.
Und daher ist es keine Schande Fragen zu stellen, eher im
Gegenteil.


Bis hier hin zu 100 Prozent einverstanden

Zitat:


Ich habe also auch bewusst hier im Einsteiger Forum meine
Frage gestellt, in der Hoffnung, Hilfe, Tipps und auch
Ratschläge zu bekommen.


Und genau hier fängt die Problematik an:
Die Frage passt oft nicht wirklich zu der Aufgabenstellung bzw. zu den Kenntnissen.
Als Beispiel mal einen Grundschüler der wissen möchte wie man mit komplexen Zahlen rechnet. Wie will man ihm das erklären?

Oder auch wie bei deiner Frage, du hast keine Ahnung von Daten(Strukturen, Auswertung usw.), stellst aber eine Frage die eine gewisse Vorkenntnis erfordert um diese Aufgabe gut lösen zu können. Deine Aufgabenstellung ist eigentlich nichts für einen Anfänger in dieser Materie.

Zitat:


Allerdings hilft es mir persönlich - und vermutlich vielen
anderen Neulingen - nicht all zuviel - nur ein Schlagwort als
Antwort zu erhalten, oder den Hinweis, man kennt sich nicht
aus und soll nachschlagen.


Die Hinweise sind ja grundsätzlich nicht schlecht.
Das Problem ist halt nur, dass man nicht weiß, ob man damit weiter hilft, wie der Kenntnisstand des Fragestellers ist usw. Um bei meinem obigen Beispiel zu bleiben, wir konnten nicht wissen, ob du Grundschüler bist, oder einfach nur an fängst dich mit komplexen Zahlen zu beschäftigen.

Zitat:


Das man sich nicht auskennt, ist eine klare Sache, sonst
würde man hier ja auch nicht fragen.
Und versucht, den notwendigen Hinweis zu finden, das habe ich
in den letzten Tagen zur Genüge, allerdings ohne Resultat
oder Erfolg.


Eben, weil keiner wissen konnte worin das "Anfängerdasein" überhaupt besteht.

Zitat:


Auch hilft es manchmal, nur eine kleinen, aber notwendigen
Tipp zu erhalten, oder den passenden Link.


Aber genau hier widersprichst du dir ja selbst.
ein Tipp was hilfreich sein sollte ist ja auch nur ein Schlagwort wie du es oben erwähnt hast, also hätte das auch helfen können, zumindest dahingehend, dass du weißt in welche Richtung es geht und ob die Kenntnisse ausreichen dass du mit der vorgeschlagenen Lösung etwas anfangen kannst oder eben auch nicht.

Zitat:


Allerdings wäre es auch hilfreich, nicht gleich immer an die
größtmögliche Anwendung zu denken, nochmals, es gibt hier
keine Datenbank und keine SQL Anbindung an irgend etwas, es
sind nur selbst erzeugte Datensätze, die entsprechend
dargestellt werden sollen.


Na ja, wenn die Rede von Datensätzen ist, dann sind es immer mehrere Daten dir ausgewertet werden können.
Auch eine simple Textdatei kann eine "Datenbank" sein. Woher die Daten stammen spielt dabei erst mal gar keine Rolle. Und schon der Begriff Distinct aus deiner Fragestellung lässt ja darauf schließen, dass es sich um eine Datenstruktur handelt die per SQL bearbeitet werden kann. Und um bei meiner Ausführung oben zu bleiben, dass dieser Begriff in der Fragestellung steht lässt ja zuerst mal vermuten, dass gewisse Kenntnisse vorhanden sind. Kein Grundschüler würde nach komplexen Zahlen fragen, aber auch kein Programmieranfänger nach Distinct. Und wenn doch, dann führt das halt zu solchen Problemen wie hier.

Aber abschließend gefragt: ManfredX hat dir ja die Lösung präsentiert, auch er hatte zuerst so seine Prlobleme bzw. Rückfragen an dich. Aber hat dir das vom Lerneffekt jetzt etwas gebracht? Bzw. wichtiger, ob du nur den Problem gelöst bekommen hast oder auch etwas gelernt hast. Könntest du ein ähnliches Problem jetzt selbst lösen? Oder hast du doch vielleicht die anderen Tipps als Grundlage genommen dich weiter mit der Materie zu beschäftigen?

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Filter für DatatView mit Distinct Spalten 
Autor: woha
Datum: 06.05.20 08:48

Hallo Wobi,



so wie bereits an Manfred geantwortet, der entscheidende Hinweis war in den beiden Zeilen des Beispielcodes versteckt. Die haben mir genau den kleinen "Kick" gegeben, der mich weiter gebracht hat.

Und natürlich hast du nicht unrecht. Ich habe seit vielen Jahren programmiert, begonnen in den 80er und 90er mit Fortran, unter Unix, im Shell Bereich und awk, jetzt ganz lange Zeit mit vb6 und nun war es Zeit, zeitgemäß zu werden und daher der Schritt auf .net.

Ich wollte auch nicht nur sofort eine Frage stellen, sondern zuerst suchen, recherchieren, selber drauf kommen.
Erst als das alles dann nicht mehr geklappt hat, kam dann die Frage hier.

Und um bei den Hinweisen zu bleiben, klar, jeder Hinweis, jeder Link wurde und wird gerne von mir aufgenommen und weiter verfolgt.
Am leichtesten tue ich mir aber mit einer bzw. ein paar wenigen Beispielzeilen.
Manche Hinweise waren auch nicht weiter zu verfolgen, da der Link nicht geht, gesperrt war, oder auch nur eine Übersicht über SQL Statements war, die mir aber im Kontext zur VB.net Programmcode Frage nicht wirklich weiter geholfen haben.
Eine Zeile, wie ich exakt den SQL Query gut in die "DataView", "Datatable" oder "Binding-Filter" Zeile hineinschreibe, wäre genau das, was ich eigentlich wollte.
Ich werde beim nächsten mal, wenn ich noch darf, versuchen, die Frage exakter, genauer und mti den fachlich richtigen Ausdrücken zu stellen.
In der Zwischenzeit schon einmal, Danke für Eure HIlfe
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel