Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để xử lý nhiều kết quả bằng cách sử dụng DataReader trong Visual C#.NET

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:311274
Đối với một Microsoft Visual Basic.NET Phiên bản này viết, xem 309490.

Bài viết này đề cập Microsoft sau.Không gian tên thư viện lớp của NET Framework:
  • System.Data.OleDb
  • System.Data.SqlClient

TRONG TÁC VỤ NÀY

TÓM TẮT
Bài viết này chứa hàm chung chung mà bạn có thể sử dụng để xử lý nhiều recordsets và các tin nhắn khác được trả về từ lưu trữ thủ tục hoặc thực hiện đợt SQL phát biểu.

back to the top

Mô tả kỹ thuật

ActiveX Data Objects (ADO) có thể nhận được 5 loại khác nhau của dữ liệu từ máy chủ:
  • RecordSet
  • Số hồ sơ được thay đổi bởi một truy vấn hành động (ví dụ như INSERT, UPDATE, DELETE, hoặc chọn vào)
  • Thông tin thư hoặc cảnh báo
  • Thông báo lỗi
  • Giá trị trả lại thủ tục được lưu trữ và đầu ra tham số
Khi bạn đọc các kết quả của một loạt các lệnh SQL, bạn có thể sử dụng các NextResult phương pháp để định vị các DataReader và kết quả tiếp theo trong resultset.

back to the top

Yêu cầu

Danh sách sau vạch ra được đề nghị phần cứng, phần mềm, hạ tầng mạng, và gói dịch vụ mà bạn cần:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, hoặc máy chủ Windows NT 4.0
  • Microsoft Visual Studio.NET
  • Microsoft SQL Server 7.0 hoặc cao hơn
Bài viết này giả định rằng bạn đã quen thuộc với sau các chủ đề:
  • Visual Studio.NET
  • ADO.Nguyên tắc cơ bản NET và cú pháp
back to the top

Tạo dự án và thêm mã

Mã mẫu này sử dụng các tác giả bảng SQL máy chủ quán rượu mẫu cơ sở dữ liệu.
  1. Dán các câu sau đây vào phân tích truy vấn SQL công cụ hoặc tiện ích ISQL:
    CREATE PROC MyProcAS    SELECT * FROM Authors    SELECT * FROM Authors WHERE State = 'CA'GO 					
  2. Bắt đầu Visual Studio.NET.
  3. Tạo một dự án ứng dụng Windows mới trong Visual C#.NET. Form1 sẽ được thêm vào các dự án theo mặc định.
  4. Đảm bảo rằng dự án của bạn có chứa một tham chiếu đến các System.Data không gian tên, và thêm một tham chiếu đến không gian tên này nếu có không.
  5. Nơi một Chỉ huy nút trên Form1. Thay đổi các Tên tài sản của các nút để btnTest, và thay đổi các Văn bản bất động sản để Test.
  6. Sử dụng các bằng cách sử dụng tuyên bố về sự Các vấn đề, System.Data.OleDb, và System.Data.SqlClient không gian tên do đó bạn không phải vượt qua vòng loại tờ khai trong những không gian tên sau trong mã của bạn. Thêm mã sau vào vị tướng Khai báo phần của Form1:
    using System;using System.Data.OleDb;using System.Data.SqlClient;					
  7. Thêm mã sau đây để các btnTest_Click sự kiện:

    Chú ý Bạn phải thay đổi ID người dùng <user name="">Tài khoản giá trị sang trương mục có quyền thích hợp để thực hiện các hoạt động trên cơ sở dữ liệu.</user>
        String myConnString  = "User ID=<username>;password=<strong password>;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. Sửa đổi (chuỗi) kết nốimyConnString) phù hợp với môi trường của bạn.
  9. Lưu dự án của bạn. Trên các Gỡ lỗi trình đơn, nhấp vào Bắt đầu để chạy dự án của bạn.
  10. Nhấp vào Test. Thông báo rằng các hộp thông điệp sẽ hiển thị các dữ liệu đó là được lưu trữ trở về thủ tục.
back to the top
THAM KHẢO
Cho thông tin thêm về cách gọi thủ tục được lưu trữ, Click vào bài viết số dưới đây để xem bài viết trong cơ sở kiến thức Microsoft:
306574 Làm thế nào để gọi SQL máy chủ lưu trữ thủ tục trong ASP.NET
Để thêm thông tin về quản lý lỗi, bấm vào số bài viết dưới đây để xem các bài viết trong các Cơ sở kiến thức Microsoft:
308650 Làm thế nào để có được nằm bên dưới nhà cung cấp lỗi bằng cách sử dụng ADO.NET trong Visual C#.NET
Để thêm thông tin về các thông số và thủ tục được lưu trữ, nhấn số bài viết dưới đây để xem các bài viết trong các Cơ sở kiến thức Microsoft:
308621 PRB: Các thông số đầu ra không trả lại khi bạn chạy một ADO.NET lệnh trong Visual C#.NET
Để biết thêm chi tiết về ADO.Các đối tượng NET và cú pháp, chỉ đến Microsoft sau.NET Framework Kit phát triển phần mềm (SDK) tài liệu: back to the top
NextResult

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 311274 - Xem lại Lần cuối: 08/27/2011 18:31:00 - Bản sửa đổi: 2.0

Microsoft ADO.NET 1.1, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# .NET 2003 Standard Edition

  • kbhowtomaster kbsqlclient kbsystemdata kbmt KB311274 KbMtvi
Phản hồi