403
Chương 10: Cơ sở dữ liệu
SqlCommand com = con.CreateCommand();
com.CommandType = CommandType.StoredProcedure;
com.CommandText = "SalesByCategory";
// Tạo đối tượng SqlParameter cho thông số category.
com.Parameters.Add("@CategoryName",SqlDbType.NVarChar).Value
= category;
// Tạo đối tượng SqlParameter cho thông số year.
com.Parameters.Add("@OrdYear",SqlDbType.NVarChar).Value = year;
// Thực thi câu lệnh và xử lý kết quả.
using (IDataReader reader = com.ExecuteReader()) {
§
}
}
5.
5.
X lý k t qu c a truy v n SQL b ng data-reader
ử
ế
ả ủ
ấ
ằ
X lý k t qu c a truy v n SQL b ng data-reader
ử
ế
ả ủ
ấ
ằ
Bạn cần xử lý dữ liệu chứa trong đối tượng
System.Data.IDataReader
(đối tượng
này được trả về khi bạn thực thi phương thức
IDbCommand.ExecuteReader
—đã
được thảo luận trong mục 10.3).
Sử dụng các thành viên của đối tượng
IDataReader
để duyệt tuần tự các hàng
trong tập kết quả và truy xuất các item dữ liệu chứa trong mỗi hàng.
Giao diện
IDataReader
mô tả một data-reader, đây là một cơ chế chỉ-tiến, chỉ-đọc (forward-
only, read-only) để truy xuất kết quả của truy vấn SQL. Mỗi data-provider chứa một hiện thực
IDataReader
duy nhất. Dưới đây là danh sách các hiện thực
IDataReader
cho năm data-
provider chuẩn:
•
System.Data.Odbc.OdbcDataReader
•
System.Data.OleDb.OleDbDataReader
•
System.Data.OracleClient.OracleDataReader
•
System.Data.SqlServerCe.SqlCeDataReader
•
System.Data.SqlClient.SqlDataReader
Giao diện
IDataReader
thừa kế giao diện
System.Data.IDataRecord
. Các giao diện này khai
báo các chức năng truy xuất dữ liệu và cấu trúc của dữ liệu có trong tập kết quả. Bảng 10.5
mô tả vài thành viên thông dụng của giao diện
IDataReader
và
IDataRecord
.
Ngoài các thành viên được liệt kê trong bảng 10.5, data-reader còn cung cấp một tập các
phương thức thực hiện việc lấy dữ liệu đã được định kiểu từ hàng hiện tại. Mỗi phương thức
sau đây nhận vào một đối số nguyên cho biết chỉ số (đánh từ 0) của cột mà dữ liệu sẽ được trả