Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort zur 6. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Das Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Strukturen und Enumerationen
7 Fehlerbehandlung und Debugging
8 Auflistungsklassen (Collections)
9 Generics – Generische Datentypen
10 Weitere C#-Sprachfeatures
11 LINQ
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 XML
15 Multithreading und die Task Parallel Library (TPL)
16 Einige wichtige .NET-Klassen
17 Projektmanagement und Visual Studio 2012
18 Einführung in die WPF und XAML
19 WPF-Layout-Container
20 Fenster in der WPF
21 WPF-Steuerelemente
22 Elementbindungen
23 Konzepte von WPF
24 Datenbindung
25 Weitere Möglichkeiten der Datenbindung
26 Dependency Properties
27 Ereignisse in der WPF
28 WPF-Commands
29 Benutzerdefinierte Controls
30 2D-Grafik
31 ADO.NET – Verbindungsorientierte Objekte
32 ADO.NET – Das Command-Objekt
33 ADO.NET – Der SqlDataAdapter
34 ADO.NET – Daten im lokalen Speicher
35 ADO.NET – Aktualisieren der Datenbank
36 Stark typisierte DataSets
37 Einführung in das ADO.NET Entity Framework
38 Datenabfragen des Entity Data Models (EDM)
39 Entitätsaktualisierung und Zustandsverwaltung
40 Konflikte behandeln
41 Plain Old CLR Objects (POCOs)
Stichwort

Download:
- Beispiele, ca. 62,4 MB

Buch bestellen
Ihre Meinung?

Spacer
Visual C# 2012 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2012

Visual C# 2012
Rheinwerk Computing
1402 S., 6., aktualisierte und erweiterte Auflage 2013, geb., mit DVD
49,90 Euro, ISBN 978-3-8362-1997-6
Pfeil 34 ADO.NET – Daten im lokalen Speicher
Pfeil 34.1 Allgemeines
Pfeil 34.2 Verwenden des DataSet-Objekts
Pfeil 34.2.1 Ein DataSet-Objekt erzeugen
Pfeil 34.2.2 Die Anatomie einer DataTable
Pfeil 34.2.3 Der Zugriff auf eine Tabelle im DataSet
Pfeil 34.2.4 Der Zugriff auf die Ergebnisliste
Pfeil 34.2.5 Dateninformationen in eine XML-Datei schreiben
Pfeil 34.3 Gültigkeitsprüfung im DataSet
Pfeil 34.3.1 Dem DataSet Schemainformationen übergeben
Pfeil 34.3.2 Eigenschaften einer DataColumn, die der Gültigkeitsprüfung dienen
Pfeil 34.3.3 Die Constraints-Klassen einer »DataTable«
Pfeil 34.3.4 Das Schema mit Programmcode erzeugen
Pfeil 34.3.5 Schemainformationen mit SqlDataAdapter abrufen
Pfeil 34.4 Änderungen in einer DataTable vornehmen
Pfeil 34.4.1 Editieren einer DataRow
Pfeil 34.4.2 Löschen einer Datenzeile
Pfeil 34.4.3 Eine neue Datenzeile hinzufügen
Pfeil 34.4.4 Der Sonderfall: Autoinkrementspalten
Pfeil 34.4.5 Was bei einer Änderung einer Datenzeile passiert
Pfeil 34.4.6 Manuelles Steuern der Eigenschaft »DataRowState«
Pfeil 34.5 Mit mehreren Tabellen arbeiten
Pfeil 34.5.1 Der Weg über JOIN-Abfragen
Pfeil 34.5.2 Mehrere Tabellen in einem DataSet
Pfeil 34.5.3 Eine DataRelation erzeugen
Pfeil 34.5.4 DataRelations und Einschränkungen
Pfeil 34.5.5 In Beziehung stehende Daten suchen
Pfeil 34.5.6 Ergänzung zum Speichern von Schemainformationen in einer XML-Schemadatei
Pfeil 34.6 Filtern und suchen in einer DataTable
Pfeil 34.6.1 Die Methode »Find«
Pfeil 34.6.2 Die Methode »Select«
Pfeil 34.7 Objekte vom Typ »DataView«
Pfeil 34.7.1 Einen »DataView« erzeugen
Pfeil 34.7.2 Auf die Datenzeilen in einem »DataView« zugreifen
Pfeil 34.7.3 Die Eigenschaft »Sort« und die Methode »Find«
Pfeil 34.7.4 Die Methode »FindRows«
Pfeil 34.7.5 Die Eigenschaft »RowFilter«
Pfeil 34.7.6 Die Eigenschaft »RowStateFilter«
Pfeil 34.7.7 Änderungen an einem »DataView«-Objekt
Pfeil 34.7.8 Aus einem »DataView« eine »DataTable« erzeugen

Galileo Computing - Zum Seitenanfang

34.6 Filtern und suchen in einer DataTableZur nächsten Überschrift


Galileo Computing - Zum Seitenanfang

34.6.1 Die Methode »Find«Zur nächsten ÜberschriftZur vorigen Überschrift

Wenn Sie in einer DataTable nach einer bestimmten Datenzeile suchen wollen, bietet sich die Methode Find der DataRowCollection an. Die Methode nimmt ein Objekt entgegen, das den Primärschlüssel der zu suchenden Zeile enthält. Wegen der Eindeutigkeit des Primärschlüssels ist sichergestellt, dass nur eine Zeile zurückgegeben wird. Es gibt auch eine Überladung, die ein Object-Array erwartet. Diese ist für die Tabellen gedacht, die einen Primärschlüssel aus mehreren Spalten bilden.

Die Methode Find setzt voraus, dass die entsprechende Spalte auch als Primärschlüsselspalte in der DataTable bekannt ist. Dazu bietet es sich an, entweder manuell mit der Eigenschaft PrimaryKey der DataTable die Primärschlüsselspalte als solche zu kennzeichnen oder vorher die Methode FillSchema des SqlDataAdapters aufzurufen.

Im folgenden Codebeispiel wird die Datenzeile mit dem Primärschlüssel 10 in der Tabelle Products gesucht.

SqlConnection con = new SqlConnection("...");
SqlCommand cmd = new SqlCommand("SELECT * FROM Products", con);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.FillSchema(ds, SchemaType.Source);
da.Fill(ds);

//Nach der Datenzeile mit PS = 10 suchen

DataRow row = ds.Tables[0].Rows.Find(10);
if (row == null)
Console.WriteLine("Datenzeile nicht gefunden.");
else
Console.WriteLine(row["ProductName"]);

Listing 34.14 Suchen eines Datensatzes mit einem bestimmten Primärschlüssel

Das Beispiel einer Tabelle mit einem Primärschlüssel, der aus mehreren Spalten gebildet wird, ist die Tabelle OrderDetails der Northwind-Datenbank, in der der Primärschlüssel durch die Spalten OrderID und ProductID gebildet wird. Möchten Sie in dieser Tabelle nach einem bestimmten Datensatz suchen, müssen Sie die Find-Methode wie folgt aufrufen:

DataRow row = ds.Tables[0].Rows.Find(new Object[]{10248,11});

Galileo Computing - Zum Seitenanfang

34.6.2 Die Methode »Select«Zur vorigen Überschrift

Die Find-Methode liefert nur maximal eine Datenzeile. Mit der Select-Methode lassen sich auch mehrere Datenzeilen aus einer DataTable filtern. Im Gegensatz zur Find-Methode ist Select eine Methode des DataTable-Objekts und ebenfalls mehrfach überladen.

Die einfachste Version ist parameterlos und liefert alle Datenzeilen zurück, allerdings in Form eines DataRow-Arrays, beispielsweise:

DataRow[] liste = ds.Tables[0].Select();

Eine Überladung von Select erwartet eine Zeichenfolge als Übergabeargument. Die Zeichenfolge beschreibt ein Filterkriterium, ähnlich der WHERE-Klausel in einer SQL-Abfrage, allerdings ohne WHERE. Auch hier wird die Ergebnisliste durch ein DataRow-Array gebildet.

Angenommen, Sie sind an allen Artikeln interessiert, die zur CategoryID=2 gehören und einen Preis größer 20 haben, können Sie die Liste wie folgt bilden:

DataTable tbl = ds.Tables[0];
DataRow[] liste = tbl.Select("CategoryID=2 AND UnitPrice > 20");
foreach (DataRow item in liste)
Console.WriteLine("{0}, {1}", item["ProductName"], item["UnitPrice"]);

Listing 34.15 Filtern mit der Methode »Select«

Durch die zweiparametrige Überladung der Methode können Sie im ersten Parameter das Filterkriterium angeben, im zweiten die Sortierreihenfolge. Das entspricht der ORDER BY-Klausel eines SQL-Statements, wiederum ohne ORDER BY selbst angeben zu müssen. Mit ASC und DESC können Sie auch die Sortierreihenfolge auf- und absteigend festlegen.

DataRow[] liste = tbl.Select("CategoryID=6", "ProductName ");

Um die Datenzeilenliste ohne zu filtern zu sortieren, geben Sie im ersten Parameter null an.

Die vielleicht interessanteste Überladung definiert drei Parameter: den ersten für den Filter, den zweiten für die Sortierung und den dritten vom Typ DataViewRowState. Diese Enumeration beschreibt den Zustand der Datenzeilen, die die Ergebnismenge bilden. Beispielsweise können Sie alle als gelöscht markierten Datenzeilen in einem DataRow-Array zusammenfassen oder alle geänderten. Da die Enumeration DataRowViewState das FlagsAttribute aufweist, lassen sich auch mehrere Enumerationsmember miteinander kombinieren. In Tabelle 34.6 sind alle Mitglieder der Enumeration aufgeführt.

Tabelle 34.6 Die Enumeration »DataRowViewState«

Member Beschreibung

None

Keine

Unchanged

Unveränderte Datenzeile

Added

Hinzugefügte Datenzeile

Deleted

Gelöschte Datenzeile

ModifiedCurrent

Die aktuelle Version einer geänderten Datenzeile

ModifiedOriginal

Die ursprüngliche Version einer geänderten Datenzeile

OriginalRows

Ursprüngliche Zeilen, einschließlich unveränderter und gelöschter Zeilen

CurrentRows

Aktuelle Zeilen, einschließlich unveränderter, neuer und geänderter Zeilen

Interessieren Sie sich ausschließlich für alle gelöschten und hinzugefügten Datenzeilen einer DataTable, müssen Sie mit der folgenden Anweisung filtern:

DataRow[] liste = tbl.Select(null, null, 
DataViewRowState.Added | DataViewRowState.Deleted);


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Visual C# 2012

Visual C# 2012
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: C/C++






 C/C++


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de