Jesteś obecnie w trybie offline. Czekamy na ponowne połączenie z Internetem.

JAK: Obsługiwanie wielu wyników za pomocą obiektu DataReader w programie Visual C# .NET

Ten artykuł został opublikowany wcześniej pod numerem PL311274
Wersja tego artykułu dla programu Microsoft Visual Basic .NET: 309490.

W TYM ZADANIU

Streszczenie
Ten artykuł zawiera ogólną funkcję, której można użyć do przetworzenia wielu zestawów rekordów oraz innych wiadomości zwracanych przez procedury przechowywane lub wykonanie wsadowych instrukcji SQL.

Opis techniki

Obiekty ActiveX Data Objects (ADO) mogą otrzymywać z serwera pięć różnych typów danych:
  • Zestaw rekordów
  • Liczba rekordów modyfikowanych przez kwerendę funkcjonalną (taką jak INSERT, UPDATE, DELETE lub SELECT INTO)
  • Komunikat informacyjny lub ostrzeżenie
  • Komunikat o błędzie
  • Wartości zwrócone oraz parametry wyjściowe procedur przechowywanych
Odczytując wynik działania wsadowych instrukcji SQL, można użyć metody NextResult do umieszczenia obiektu DataReader jako następnego wyniku w zestawie wyników.

Wymagania

Poniżej przedstawiono listę zalecanego sprzętu, oprogramowania, infrastruktury sieciowej i dodatków service pack:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server lub Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • Microsoft SQL Server 7.0 lub nowszy
W tym artykule zakłada się, że użytkownik jest zaznajomiony z następującymi tematami:
  • Visual Studio .NET
  • Podstawy i składnia technologii ADO.NET

Tworzenie projektu i dodawanie kodu

W przykładowym kodzie użyto tabeli Authors z przykładowej bazy danych Pubs programu SQL Server.
  1. Wklej następujące instrukcje do narzędzia SQL Query Analyzer lub narzędzia ISQL:
    CREATE PROC MyProcAS    SELECT * FROM Authors    SELECT * FROM Authors WHERE State = 'CA'GO 
  2. Otwórz program Visual Studio .NET.
  3. Utwórz nowy projekt Windows Application w programie Visual C# .NET. Domyślnie do projektu dodawany jest formularz Form1.
  4. Upewnij się, że projekt zawiera odwołanie do obszaru nazw System.Data, a jeśli nie zawiera, dodaj je.
  5. Umieść przycisk Command na formularzu Form1. Zmień właściwość Name przycisku na btnTesti zmień właściwość Text naTest.
  6. Użyj instrukcji using dla obszarów nazw System, System.Data.OleDb oraz System.Data.SqlClient, aby nie trzeba było w późniejszym czasie kwalifikować obszarów nazw w kodzie. Dodaj następujący kod do sekcji General Declarations formularza Form1:
    using System;using System.Data.OleDb;using System.Data.SqlClient;
  7. Dodaj następujący kod do zdarzenia btnTest_Click:
        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())	{ 	    //Przetwarzanie danych do uzyskania pierwszego wyniku.	    RecordCount = RecordCount + 1;	}	MessageBox.Show("Całkowita liczba autorów: " + RecordCount.ToString());	myReader.NextResult();	RecordCount = 0;	while (myReader.Read())	{	    //Przetwarzanie danych do uzyskania drugiego wyniku.	    RecordCount = RecordCount + 1;	}	MessageBox.Show("Autorzy z Kalifornii: " + RecordCount.ToString());    }    catch(Exception ex)     {       MessageBox.Show(ex.ToString());    }    finally    {	myConnection.Close();    }
  8. Zmodyfikuj ciąg Connection (myConnString) w sposób odpowiedni dla wybranego środowiska.
  9. Zapisz projekt. W menu Debug kliknij przycisk Start, a następnie uruchom projekt.
  10. Kliknij przycisk Test. Zauważ, że w oknach komunikatów zostaną wyświetlone dane zwrócone przez procedury przechowywane.
Materiały referencyjne
Aby uzyskać dodatkowe informacje dotyczące wywoływania procedur przechowywanych, kliknij numer artykułu poniżej w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
306574 HOW TO: Call SQL Server Stored Procedures in ASP.NET
Aby uzyskać dodatkowe informacje dotyczące obsługi błędów, kliknij numer artykułu poniżej w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
308650 HOW TO: Obtain Underlying Provider Errors by Using ADO.NET in Visual C# .NET
Aby uzyskać dodatkowe informacje dotyczące parametrów oraz procedur przechowywanych, kliknij numer artykułu poniżej w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
308621 PRB: Output Parameters Are Not Returned When You Run an ADO.NET Command in Visual C# .NET
Aby uzyskać dodatkowe informacje dotyczące obiektów i składni technologii ADO.NET, przeczytaj następującą dokumentację zestawu SDK (Software Development Kit) architektury Microsoft .NET Framework:
NextResult
Właściwości

Identyfikator artykułu: 311274 — ostatni przegląd: 05/13/2007 05:03:00 — zmiana: 2.2

Microsoft ADO .NET (dołączone do architektury .NET Framework), Microsoft Visual C# .NET 2002 Standard Edition

  • kbhowto kbhowtomaster kbgrpdsvbdb kbgrpdsmdac KB311274
Opinia
html>