Re: DataView traversing (ADO.NET)

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



"flemming eriksen" schrieb im Newsbeitrag...
> Ralf
>
> habe mühe mit dein CTYPE in C#.
Ahhh, dann nimm doch was richtiges, VB.NET zum Beispiel <SCNR>

Nein, ernsthaft jetzt, ich habe glatt übersehen, dass dein Beispiel C# ist.
CTYPE in VB macht das, was casting in C ist, also müsste die Zeile:
>> drX = CTYPE(dv.item(i).row, dstype.rowtype)
in C# so lauten:
drX = (dstype.rowtype) dv.item(i).row
(Ein besserer C# Programmierer möge mich berichtigen)

> Ich lese in z.B. Wrox ADO.NET dass DefaultView nur auf tabellen geht,
> nicht aber auf DataSet ( = {tabellen}).
DataSets können mehr als eine Tabelle enthalten, aber Views gibt es nur für
Tabellen. Der View ist ein Teil der Tabelle, und hat mit dem DS so erst mal
nichts zu tun. Ein View auf ein DS... ja, auf was denn genau. Ne, das macht
schon Sinn, das der View zu Table gehört.

> Dies stimmt doch nicht, weil sonst hätte ".Count" kaum das richtige
> resultat gegeben, oder ???
Count von DS gibt Anzahl der Tabellen, Count von Tabelle Anzahl der Zeilen.
Count von View die Anzahl der gefilterten Zeilen.

> Dort steht auch dass ein ViewManager objekt erforderlich ist, dies ist
> doch auch falsch?
Jede Tabelle hat einen DefaultView, das hat mir bisher immer gereicht. Du
kannst für eine Tabelle mehrere Views gleichzeitig haben - Dann reicht der
Default natürlich nicht, und über Manager kannst du dir soviele holen, wie
du magst -> hier aber nicht wichtig.

> Muss mann wirklich eine DataView deklarieren, oder kann man mit dem
> default-built-in object "DefaultView" es auch lösen?
Siehe oben! Mir hat immer der mitgelieferte eine DefaultView gereicht (der
ist übrigens wiedervendbar). Nur wenn du zur gleichen Zeit die gleiche
Tabelle 2 mal unterschiedlich sortiert/gefiltert brauchst, musst du den
Aufwand treiben.

> Ich suche ein syntax mit a.b.c. usw. und nicht mit schleifen.(strong
> typing)
Ähhh, dein eigenes Beispiel enthielt eine Schleife. Und genau das meinte ich
mit
>> Gar nicht - jedenfalls habe ich keine Variante gefunden.

Nochmal zu deinem eigenen Beispiel zurück:
>>> ppDS.HPerson.DefaultView.RowFilter = "fullname like 'test%'";
>>>
>>> int row_count = ppDS.HPerson.DefaultView.Count; [1]
>>>
>>> foreach (ParamPersonDataSet.HPersonRow dr in
>>> ppDS.HPerson.DefaultView.Table.Rows) [2]

Du siehst, dass du in [1] View.Count nimmst, in [2] aber View.TABLE.Rows?
In [2] lässt du dir vom View wieder die zugrundeliegende Table geben, die
ist aber ungefiltert. Gefiltert ist der View!

Also muss in [2] das .Table. weg...
Aber, dann siehst du, dass DefaultView keine Foreach Auflistung bietet,
sondern nur Count, daher meine Schleife I as Integer = 0 to Count -1


<Rest geschnippt>
Grüße Ralf


.



Relevant Pages

  • =?ISO-8859-1?Q?Re=3A_View=3A_Grundsatz=FCberlegungen_fuer_dummies?=
    ... weitere Felder wurden in eine eigene Tabelle "X_MASTER" gelegt. ... Die neue Tabelle X_MASTER belegte ca. 40 Byte pro Record. ... Damit erstellt man einen View mit dem Namen der alten Tabelle X und ... weder bei Oracle, ...
    (de.comp.lang.delphi.datenbanken)
  • Anwendungen mit local views
    ... Seite werden die Detaildaten anzeigt auf der 2. ... Seite eine Tabelle mit allen Kundennamen. ... View 2 'kundendetail' basiert auch auf der Tabelle 'kunde' ist aber so parametersiert, dass nur die Daten eines Kunden angezeigt werden sollen. ...
    (microsoft.public.de.fox)
  • Re: join versus Unterabfrage
    ... Tabelle steht, mich die Zwischentabellen aber garnicht interessieren ist dann ... der Join immer noch schneller als wenn ich eine Unterabfrage mache (dabei ... wenn ich eine komplexe View erstelle (bis zu 20 ... Wenn du aber Szenarien wie beschrieben abbilden willst, solltest du neben View mit join und subselect auch Stored Procs ins Auge fassen. ...
    (microsoft.public.de.sqlserver)
  • Re: Datenbank-Architektur
    ... diese Tabelle mit EINER anderen Tabelle etwas zu tun hat. ... Die m:n Beziehung zwischen Firmen und Branchen wird über eine ... Die Beziehung zwischen Firmen und Personen wird ebenfalls über ... Dann erstellst du dir für exakt diese Anforderung einen View, ...
    (microsoft.public.de.fox)
  • Re: Autofilter innerhalb der eingeblendeten Zeilen mit Pfeil rauf / runter springen
    ... Ich habe eine Tabelle mit gefilterten Datensätzen. ... jedoch nur die eingeblendeten Zellen markieren (und ... die ausgeblendeten überspringen). ...
    (microsoft.public.excel.programming)