Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

SO WIRD'S GEMACHT: Verarbeiten von mehreren Ergebnissen in Visual C# .NET mithilfe des DataReader

Dieser Artikel wurde zuvor veröffentlicht unter D311274
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
311274 HOW TO: Handle Multiple Results Using the DataReader in Visual C# .NET
In Artikel 309490 wird dieses Thema für Microsoft Visual Basic .NET behandelt.
Hinweis: Die Verwendung der hier aufgeführten Informationen sowie Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionalität sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen.

Weitere Informationen zu den von Microsoft angebotenen Supportoptionen finden Sie unter folgender Internetadresse: Achtung: Die in diesem Artikel aufgeführten Codebeispiele basieren auf den Beispieldatenbanken der englischsprachigen Versionen von Microsoft SQL Server oder Microsoft Access. Sie können diese Beispiele nicht mit den deutschsprachigen Beispieldatenbanken von SQL Server oder Access verwenden. Verwenden Sie entweder die englischsprachigen Versionen dieser Datenbanken, oder passen Sie die Codebeispiele so an, dass sie auf die deutschen Beispieldatenbanken und die deutschsprachigen Datenbankobjekte verweisen.
Zusammenfassung
Dieser Artikel enthält eine allgemeine Funktion, die Sie zur Verarbeitung von mehreren Recordsets und anderen Meldungen verwenden können, die von gespeicherten Prozeduren oder der Batchausführung von SQL-Anweisungen zurückgegeben werden.

Zurück zum Anfang

Beschreibung der Technik

ActiveX Data Objects (ADO) kann fünf unterschiedliche Typen von Daten vom Server erhalten:
  • Recordset
  • Anzahl der Datensätze, die von einer aktiven Abfrage (wie z. B. INSERT, UPDATE, DELETE oder SELECT INTO) geändert werden.
  • Informative Meldung oder Warnung
  • Fehlermeldung
  • Ausgabeparameter und Rückgabewerte von gespeicherten Prozeduren
Wenn Sie die Ergebnisse einer Batch-SQL-Abfrage auslesen, können Sie den DataReader mithilfe der Methode NextResult beim nächsten Ergebnis des Resultset positionieren.

Zurück zum Anfang

Voraussetzungen

In der folgenden Liste sind die empfohlene Hardware, Software, Netzwerkinfrastruktur und die erforderlichen Service Packs aufgeführt:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server oder Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • Microsoft SQL Server 7.0 oder höhere Version
Dieser Artikel setzt voraus, dass Sie mit folgenden Themen vertraut sind:
  • Visual Studio .NET
  • ADO.NET-Grundlagen und -Syntax
Zurück zum Anfang

Erstellen des Projekts und Hinzufügen des Codes

Im Beispiel wird die Tabelle "Authors" aus der SQL Server Pubs-Beispieldatenbank verwendet.
  1. Fügen Sie folgende Abfragen in den SQL Query Analyzer oder das Dienstprogramm ISQL ein:
    CREATE PROC MyProcAS    SELECT * FROM Authors    SELECT * FROM Authors WHERE State = 'CA'GO 
  2. Öffnen Sie Visual Studio .NET.
  3. Erstellen Sie ein neues Windows-Anwendungsprojekt in Visual C# .NET. Form1 wird standardmäßig zum Projekt hinzugefügt.
  4. Vergewissern Sie sich, dass Ihr Projekt einen Verweis auf den Namespace System.Data enthält. Wenn das nicht der Fall ist, fügen Sie einen Verweis auf diesen Namespace hinzu.
  5. Versehen Sie Form1 mit einer Befehlsschaltfläche. Ändern Sie die Eigenschaft Name der Schaltfläche auf btnTest und die Eigenschaft Text auf Testen.
  6. Verwenden Sie die Anweisung using für die Namespaces System, System.Data.OleDb und System.Data.SqlClient, damit Sie später keine Deklarationen aus diesen Namespaces in Ihrem Code vornehmen müssen. Fügen Sie zum allgemeinen Deklarationsteil von Form1 folgenden Code hinzu:
    using System;using System.Data.OleDb;using System.Data.SqlClient;
  7. Fügen Sie folgenden Code zum Ereignis btnTest_Click hinzu:
        String myConnString  = "User ID=sa;password=sa;Initial Catalog=pubs;Data Source=myServer";    SqlConnection myConnection = new SqlConnection(myConnString);    SqlCommand myCommand = new SqlCommand();    SqlDataReader myReader ;    myCommand.CommandType = CommandType.StoredProcedure;    myCommand.Connection = myConnection;    myCommand.CommandText = "MyProc";    int RecordCount=0;     try    {        myConnection.Open();	myReader = myCommand.ExecuteReader();	while (myReader.Read())	{ 	    //Write logic to process data for the first result.	    RecordCount = RecordCount + 1;	}	MessageBox.Show("Total number of Authors: " + RecordCount.ToString());	myReader.NextResult();	RecordCount = 0;	while (myReader.Read())	{	    //Write logic to process data for the second result.	    RecordCount = RecordCount + 1;	}	MessageBox.Show("Authors from California: " + RecordCount.ToString());    }    catch(Exception ex)     {       MessageBox.Show(ex.ToString());    }    finally    {	myConnection.Close();    }
  8. Passen Sie den Verbindungsstring (myConnString) Ihrer Umgebung entsprechend an.
  9. Speichern Sie Ihr Projekt. Klicken Sie im Menü Debuggen auf Start, und führen Sie Ihr Projekt aus.
  10. Klicken Sie auf Testen. In den Meldungsboxen werden nun die von den gespeicherten Prozeduren zurückgegebenen Daten angezeigt.
Zurück zum Anfang
Informationsquellen
Weitere Informationen zum Aufruf gespeicherter Prozeduren finden Sie in folgendem Artikel der Microsoft Knowledge Base:
306574 HOW TO: Call SQL Server Stored Procedures in ASP.NET
Weitere Informationen zur Fehlerbehandlung finden Sie in folgendem Artikel der Microsoft Knowledge Base:
308650 HOW TO: Obtain Underlying Provider Errors Using ADO.NET in Visual C# .NET
Weitere Informationen zu Parametern und gespeicherten Prozeduren finden Sie in folgendem Artikel der Microsoft Knowledge Base:
308621 PRB: Output Parameters Are Not Returned When You Run an ADO.NET Command in Visual C# .NET
Weitere Informationen über ADO.NET-Objekte und -Syntax finden Sie in der folgenden Dokumentation im Microsoft .NET Framework Software Development Kit (SDK):Zurück zum Anfang
NextResult
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Eigenschaften

Artikelnummer: 311274 – Letzte Überarbeitung: 05/13/2007 05:02:33 – Revision: 1.4

  • Microsoft ADO.NET 1.0
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • kbgrpdsmdac kbgrpdsvbdb kbhowtomaster KB311274
Feedback
> t.com/ms.js" '="">om/ms.js" '="">