Rheinwerk Computing < openbook > Rheinwerk 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

Jetzt 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 32 ADO.NET – Das Command-Objekt
Pfeil 32.1 Die Datenbankabfrage
Pfeil 32.2 Das SqlCommand-Objekt
Pfeil 32.2.1 Erzeugen eines SqlCommand-Objekts
Pfeil 32.2.2 Die Methode »CreateCommand« des Connection-Objekts
Pfeil 32.2.3 Ausführen des SqlCommand-Objekts
Pfeil 32.2.4 Die Eigenschaft »CommandTimeout« des SqlCommand-Objekts
Pfeil 32.3 Aktionsabfragen absetzen
Pfeil 32.3.1 Datensätze hinzufügen
Pfeil 32.3.2 Datensätze löschen
Pfeil 32.3.3 Datensätze ändern
Pfeil 32.3.4 Abfragen, die genau ein Ergebnis liefern
Pfeil 32.4 Das SqlDataReader-Objekt
Pfeil 32.4.1 Datensätze einlesen
Pfeil 32.4.2 Schließen des SqlDataReader-Objekts
Pfeil 32.4.3 MARS (Multiple Active Resultsets)
Pfeil 32.4.4 Batchabfragen mit »NextResult« durchlaufen
Pfeil 32.4.5 Das Schema eines SqlDataReader-Objekts untersuchen
Pfeil 32.5 Parametrisierte Abfragen
Pfeil 32.5.1 Parametrisierte Abfragen mit dem SqlClient-Datenprovider
Pfeil 32.5.2 Die Klasse »SqlParameter«
Pfeil 32.5.3 Asynchrone Abfragen
Pfeil 32.5.4 Gespeicherte Prozeduren (Stored Procedures)

Rheinwerk Computing - Zum Seitenanfang

32.3 Aktionsabfragen absetzenZur nächsten Überschrift

Abfragen, die Änderungen an den Originaldaten der Datenbank nach sich ziehen (UPDATE, DELETE INSERT) oder die Struktur einer Datenbank verändern (CREATE TABLE), werden mit der Methode ExecuteNonQuery abgesetzt.

Handelt es sich bei dem Befehl um ein UPDATE-, INSERT- oder DELETE-Kommando, können Sie über den Rückgabewert die Anzahl der von der Anweisung betroffenen Datenzeilen feststellen.


Rheinwerk Computing - Zum Seitenanfang

32.3.1 Datensätze hinzufügenZur nächsten ÜberschriftZur vorigen Überschrift

Im folgenden Beispielprogramm wird der Tabelle Products ein Datensatz hinzugefügt. Dabei wird der parametrisierte Konstruktor der Klasse SqlCommand verwendet, der im ersten Parameter den SQL-Befehl und im zweiten die Referenz auf das SqlConnection-Objekt entgegennimmt.

// Beispiel: ..\Kapitel 32\DatensätzeHinzufügen
static void Main(string[] args) {
SqlConnection con = new SqlConnection("...");
// SQL-Befehl
string strSQL =
"INSERT INTO Products(ProductName, Discontinued) " +
"VALUES('Schweizer Käse',0)";
try {
con.Open();
SqlCommand cmd = new SqlCommand(strSQL, con);
// Kommando absetzen
cmd.ExecuteNonQuery();
}
catch (Exception e) {
Console.WriteLine("Fehlermeldung: {0}", e.Message);
}
con.Close();
}

Listing 32.3 Datensätze zu einer Tabelle hinzufügen


Rheinwerk Computing - Zum Seitenanfang

32.3.2 Datensätze löschenZur nächsten ÜberschriftZur vorigen Überschrift

Der Datensatz aus dem vorhergehenden Beispiel soll nun wieder gelöscht werden. Da wir nun daran interessiert sind, ob und wie viele Datenzeilen von einer Löschanweisung betroffen sind, werten wir den Rückgabewert der Methode ExecuteNonQuery an der Konsole aus.

// Beispiel: ..\Kapitel 32\DatensätzeLöschen
static void Main(string[] args) {
SqlConnection con = new SqlConnection("...");
try {
con.Open();
string strSQL = "DELETE FROM Products " +
"WHERE ProductName='Schweizer Käse'";
SqlCommand cmd = new SqlCommand(strSQL, con);
Console.Write("Anzahl der gelöschten Datensätze = ");
Console.WriteLine(cmd.ExecuteNonQuery());
}
catch (Exception e) {
Console.WriteLine("Fehlermeldung: {0}", e.Message);
}
con.Close();
}

Listing 32.4 Löschen eines Datensatzes

Nach dem ersten Start des Programms wird der im Abschnitt zuvor hinzugefügte Datensatz gelöscht. An der Konsole sehen wir das bestätigt, da die Zahl 1 ausgegeben wird. Rufen wir das Programm ein zweites Mal auf, wird kein Datensatz gefunden, der dem Kriterium ProductName='Schweizer Käse' entspricht. Das spiegelt sich in der Ausgabe

Die Anzahl der gelöschten Datensätze = 0

wider.


Rheinwerk Computing - Zum Seitenanfang

32.3.3 Datensätze ändernZur nächsten ÜberschriftZur vorigen Überschrift

Zu Beginn dieses Abschnitts wurde in dem Beispiel ExecuteNonQueryDemo bereits gezeigt, wie Sie Datensätze in der Datenbank editieren können. Daher soll an dieser Stelle auf ein weiteres Beispiel verzichtet werden.


Rheinwerk Computing - Zum Seitenanfang

32.3.4 Abfragen, die genau ein Ergebnis liefernZur vorigen Überschrift

Mit der SELECT-Anweisung können Sie eine Datensatzliste nach bestimmten Auswahlkriterien aus einer Datenbank abrufen. Der Befehl SELECT wird aber auch dann benutzt, wenn eine Aggregatfunktion definiert werden soll. Aggregatfunktionen liefern ein Ergebnis zurück. Beispielsweise können Sie mit

SELECT COUNT(*) FROM Products

die Anzahl der Artikel in der Tabelle Products ermitteln und mit

SELECT COUNT(*) FROM Products WHERE CategoryID = 1

feststellen, wie viele Artikel zur Kategorie 1 gehören. Neben COUNT stehen noch weitere Aggregatfunktionen zur Verfügung: SUM, um die Summe eines numerischen Ausdrucks zu ermitteln, AVG, um einen Durchschnittswert zu bilden, sowie MIN und MAX, um aus einem gegebenen Ausdruck den Maximal- bzw. Minimalwert zu erhalten.

Um den Rückgabewert einer Aggregatfunktion entgegenzunehmen, rufen Sie die Methode ExecuteScalar auf das SqlCommand-Objekt auf. Der Typ der Rückgabe ist Object, daher muss das Ergebnis noch in den passenden Datentyp konvertiert werden.

string textSQL = "SELECT COUNT(*) FROM Products WHERE CategoryID=1";
SqlCommand cmd = new SqlCommand(textSQL, con);
int anzahlDS = Convert.ToInt32(cmd.ExecuteScalar());

Listing 32.5 Aufrufen einer Aggregatfunktion



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Visual C# 2012

Visual C# 2012
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Rheinwerk-Shop: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: C++ Handbuch






 C++ Handbuch


Zum Rheinwerk-Shop: C/C++






 C/C++


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
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.


Nutzungsbestimmungen | Datenschutz | Impressum

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

Cookie-Einstellungen ändern