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

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 311274 - Produkte anzeigen, auf die sich dieser Artikel bezieht
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:
http://support.microsoft.com/
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.
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.
Alles erweitern | Alles schließen

Auf dieser Seite

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.

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.

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

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 MyProc
    AS
        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.

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):
Accessing Data with ADO.NET
http://msdn2.microsoft.com/en-us/library/e80y5yhx(vs.71).aspx

Eigenschaften

Artikel-ID: 311274 - Geändert am: Sonntag, 13. Mai 2007 - Version: 1.4
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ADO.NET 1.0
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
Keywords: 
kbgrpdsmdac kbgrpdsvbdb kbhowtomaster KB311274
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com