Truy cập cơ sở dữ liệu với .NET - Truy cập nhanh cơ sở dữ liệu với Data Reader
Số trang: 8
Loại file: pdf
Dung lượng: 99.80 KB
Lượt xem: 10
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Một data reader là cách đơn giản nhất và nhanh nhất để chọn một vài dữ liệu từ một nguồn cơ sơ dữ liệu, nhưng cũng ít tính năng nhất. Bạn có thể truy xuất trực tiếp một đối tượng data reader – Một minh dụ được trả về từ một đối tượng SqlCommand hoặc OleDbCommand từ việc gọi một phương thức ExecuteReader() – có thể là một đối tượng SqlCommand, một đối tượng SqlDataReader, OleDbDataReader. Mã lệnh sau đây sẽ chứng minh cách chọn dữ liệu từ bản Customers của cơ sở dữ liệu Northwind. ...
Nội dung trích xuất từ tài liệu:
Truy cập cơ sở dữ liệu với .NET - Truy cập nhanh cơ sở dữ liệu với Data Reader Truy cập cơ sở dữ liệu với .NETTruy cập nhanh cơ sở dữ liệu với Data ReaderMột data reader là cách đơn giản nhất và nhanh nhất để chọn một vài dữ liệutừ một nguồn cơ sơ dữ liệu, nhưng cũng ít tính năng nhất. Bạn có thể truyxuất trực tiếp một đối tượng data reader – Một minh dụ được trả về từ mộtđối tượng SqlCommand hoặc OleDbCommand từ việc gọi một phương thứcExecuteReader() – có thể là một đối tượng SqlCommand, một đối tượng từ một đối tượng mộtSqlDataReader, OleDbCommand làOleDbDataReader.Mã lệnh sau đây sẽ chứng minh cách chọn dữ liệu từ bản Customers của cơsở dữ liệu Northwind. Ví dụ kết nối với cơ sở dữ liệu chọn một số các mẫutin, duyệt qua các mẫu tin được chọn và xuất chúng ra màn hình console.Ví dụ này có thể dùng cho OLE DB provider. Trong hầu hết các trường hợpcác phương thức của SqlClient đều được ánh xạ một một vào các phươngthức của đối OleDBClient.Để thực thi lại các lệnh đối với một OLE DB data source, lớpOleDbCommand được sử dụng. Mã lệnh dưới đây là một ví dụ một câu lệnhSQL đơn giảnvà đọc các mẫu tin được trả về bởi đối tượngOleDbDataReader.Mã của ví dụ có thể được tìm thấy trong thư mục Chapter09 3_DataReader.Chú ý hai câu lệnh using dưới đây được dùng trong lớp OleDb:using System;using System.Data.OleDb;Tất cả các trình cung cấp dữ liệu đều sẵn chứa bên trong các data DLL, vìvậy chỉ cần tham chiếu đến System.Data.dll assembly để dùng cho các lớptrong phần này:public class DataReaderExample{ public static void Main(string[] args) { string source = Provider=SQLOLEDB; + server=(local)\NetSDK; + uid=QSUser;pwd=QSPassword; + database=northwind; string select = SELECT ContactName,CompanyName FROMCustomers; OleDbConnection conn = new OleDbConnection(source); conn.Open(); OleDbCommand cmd = new OleDbCommand(select , conn); OleDbDataReader aReader = cmd.ExecuteReader(); while(aReader.Read()) Console.WriteLine({0} from {1} , aReader.GetString(0) , aReader.GetString(1)); aReader.Close(); conn.Close(); }}Mã nguôn trên đây bao gồm các đoạn lệnh quen thuộc đã được trình bàytrong các chương trước. Để biên dịch ví dụ này, ta dùng các dòng lệnh sau:csc /t:exe /debug+ DataReaderExample.cs /r:System.Data.dllMã sau đây từ ví dụ trên cho phép tạo một kết nối OLE DB .NET, dựa trênchuỗi kết nối: OleDbConnection conn = new OleDbConnection(source); conn.Open(); OleDbCommand cmd = new OleDbCommand(select, conn);Dòng thứ ba tạo một đối tượng OleDbCommand mới, dựa vào câu lệnhSELECT, kết nối sẽ thực thi câu lệnh lệnh này. Nếu bạn tạo một commandhợp lệ, bạn có thể thực thi chúng để trả về một minh dụ OleDbDataReader: OleDbDataReader aReader = cmd.ExecuteReader();Mội OleDbDataReader chỉ là một con trỏ connected định trước. Mặt khác,bạn có thể chỉ duyệt qua các mẫu tin được trả về, kết nối hiện tạo sẽ lưu giữcác mẫu tin đó cho đến khi data reader bị đóng lại.Lớp OleDbDataReader không thể tạo minh dụ một cách trực tiếp – nó luônđược trả về thông qua việc gọi phương thức ExecuteReader() của lớpOleDbCommand. Nhưng bạn có thể mở một data reader, có một số cáchkhác nhau để truy cập dữ liệu trong reader.Khi một đối tượng OleDbDataReader bị đóng lại (thông qua ciệc gọiphương thức Close(), hoặc một đợt thu dọn rác), kết nối bên dưới có thể bịđóng lại thông qua một lời gọi phương thức ExecuteReader(). Nếu bạn gọiExecuteReader() và truyền CommandBehavior.CloseConnection, bạn có thểép kết nối đóng lại khi đóng reader.Lớp OleDbDataReader có một bộ các quyền truy xuất thông qua các mảngquen thuộc: object o = aReader[0]; object o = aReader[CategoryID];Ở đây CategoryID là trường đầu tiên trong câu lệnh SELECT của reader, cảhai dòng trên đều thực hiện công việc giống nhau tuy nhiên cách hai hơichậm hơn cách một – Tôi đã viết một ứng dụng đơn giản để thực thi việc lậplại quá trình truy cập cho hàng triệu lần một cột trong một mẫu tin reader,chỉ để lấy một vài mẫu. Tôi biết bạn hầu như không bao giờ đọc một cộtgiống nhau hàng triệu lần, nhưng có thể là một số lần, bạn nên viết mã để tốiưu quá trình đó.Bạn có biết kết quả là thế nào không, việc truy cập môt triệu lần bằng số thứtự chỉ tốn có 0.09 giây, còn dùng chuỗi kí tự phải mất 0.63 giây. Lí do củasự chậm trễ này là vì khi dùng chuỗi kí tự ta phải dò trong schema để lấy rasố thứ tự của cột từ đó mới truy xuất được cơ sở dữ liệu. Nếu bạn biết đượccác thông tin này bạn có thể viết mã truy xuất dữ liệu tốt hơn.Vì vậy việc dùng chỉ số cột là cách dùng tốt nhất.Hơn thế nữa, OleDbDataReader ...
Nội dung trích xuất từ tài liệu:
Truy cập cơ sở dữ liệu với .NET - Truy cập nhanh cơ sở dữ liệu với Data Reader Truy cập cơ sở dữ liệu với .NETTruy cập nhanh cơ sở dữ liệu với Data ReaderMột data reader là cách đơn giản nhất và nhanh nhất để chọn một vài dữ liệutừ một nguồn cơ sơ dữ liệu, nhưng cũng ít tính năng nhất. Bạn có thể truyxuất trực tiếp một đối tượng data reader – Một minh dụ được trả về từ mộtđối tượng SqlCommand hoặc OleDbCommand từ việc gọi một phương thứcExecuteReader() – có thể là một đối tượng SqlCommand, một đối tượng từ một đối tượng mộtSqlDataReader, OleDbCommand làOleDbDataReader.Mã lệnh sau đây sẽ chứng minh cách chọn dữ liệu từ bản Customers của cơsở dữ liệu Northwind. Ví dụ kết nối với cơ sở dữ liệu chọn một số các mẫutin, duyệt qua các mẫu tin được chọn và xuất chúng ra màn hình console.Ví dụ này có thể dùng cho OLE DB provider. Trong hầu hết các trường hợpcác phương thức của SqlClient đều được ánh xạ một một vào các phươngthức của đối OleDBClient.Để thực thi lại các lệnh đối với một OLE DB data source, lớpOleDbCommand được sử dụng. Mã lệnh dưới đây là một ví dụ một câu lệnhSQL đơn giảnvà đọc các mẫu tin được trả về bởi đối tượngOleDbDataReader.Mã của ví dụ có thể được tìm thấy trong thư mục Chapter09 3_DataReader.Chú ý hai câu lệnh using dưới đây được dùng trong lớp OleDb:using System;using System.Data.OleDb;Tất cả các trình cung cấp dữ liệu đều sẵn chứa bên trong các data DLL, vìvậy chỉ cần tham chiếu đến System.Data.dll assembly để dùng cho các lớptrong phần này:public class DataReaderExample{ public static void Main(string[] args) { string source = Provider=SQLOLEDB; + server=(local)\NetSDK; + uid=QSUser;pwd=QSPassword; + database=northwind; string select = SELECT ContactName,CompanyName FROMCustomers; OleDbConnection conn = new OleDbConnection(source); conn.Open(); OleDbCommand cmd = new OleDbCommand(select , conn); OleDbDataReader aReader = cmd.ExecuteReader(); while(aReader.Read()) Console.WriteLine({0} from {1} , aReader.GetString(0) , aReader.GetString(1)); aReader.Close(); conn.Close(); }}Mã nguôn trên đây bao gồm các đoạn lệnh quen thuộc đã được trình bàytrong các chương trước. Để biên dịch ví dụ này, ta dùng các dòng lệnh sau:csc /t:exe /debug+ DataReaderExample.cs /r:System.Data.dllMã sau đây từ ví dụ trên cho phép tạo một kết nối OLE DB .NET, dựa trênchuỗi kết nối: OleDbConnection conn = new OleDbConnection(source); conn.Open(); OleDbCommand cmd = new OleDbCommand(select, conn);Dòng thứ ba tạo một đối tượng OleDbCommand mới, dựa vào câu lệnhSELECT, kết nối sẽ thực thi câu lệnh lệnh này. Nếu bạn tạo một commandhợp lệ, bạn có thể thực thi chúng để trả về một minh dụ OleDbDataReader: OleDbDataReader aReader = cmd.ExecuteReader();Mội OleDbDataReader chỉ là một con trỏ connected định trước. Mặt khác,bạn có thể chỉ duyệt qua các mẫu tin được trả về, kết nối hiện tạo sẽ lưu giữcác mẫu tin đó cho đến khi data reader bị đóng lại.Lớp OleDbDataReader không thể tạo minh dụ một cách trực tiếp – nó luônđược trả về thông qua việc gọi phương thức ExecuteReader() của lớpOleDbCommand. Nhưng bạn có thể mở một data reader, có một số cáchkhác nhau để truy cập dữ liệu trong reader.Khi một đối tượng OleDbDataReader bị đóng lại (thông qua ciệc gọiphương thức Close(), hoặc một đợt thu dọn rác), kết nối bên dưới có thể bịđóng lại thông qua một lời gọi phương thức ExecuteReader(). Nếu bạn gọiExecuteReader() và truyền CommandBehavior.CloseConnection, bạn có thểép kết nối đóng lại khi đóng reader.Lớp OleDbDataReader có một bộ các quyền truy xuất thông qua các mảngquen thuộc: object o = aReader[0]; object o = aReader[CategoryID];Ở đây CategoryID là trường đầu tiên trong câu lệnh SELECT của reader, cảhai dòng trên đều thực hiện công việc giống nhau tuy nhiên cách hai hơichậm hơn cách một – Tôi đã viết một ứng dụng đơn giản để thực thi việc lậplại quá trình truy cập cho hàng triệu lần một cột trong một mẫu tin reader,chỉ để lấy một vài mẫu. Tôi biết bạn hầu như không bao giờ đọc một cộtgiống nhau hàng triệu lần, nhưng có thể là một số lần, bạn nên viết mã để tốiưu quá trình đó.Bạn có biết kết quả là thế nào không, việc truy cập môt triệu lần bằng số thứtự chỉ tốn có 0.09 giây, còn dùng chuỗi kí tự phải mất 0.63 giây. Lí do củasự chậm trễ này là vì khi dùng chuỗi kí tự ta phải dò trong schema để lấy rasố thứ tự của cột từ đó mới truy xuất được cơ sở dữ liệu. Nếu bạn biết đượccác thông tin này bạn có thể viết mã truy xuất dữ liệu tốt hơn.Vì vậy việc dùng chỉ số cột là cách dùng tốt nhất.Hơn thế nữa, OleDbDataReader ...
Tìm kiếm theo từ khóa liên quan:
lập trình tài liệu lập trình kỹ thuật lập trình giáo trình C ngôn ngữ lập trình C tự học lập trình với CTài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 267 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 209 0 0 -
101 trang 200 1 0
-
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 196 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 169 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 153 0 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 149 0 0 -
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 134 0 0 -
161 trang 130 1 0
-
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 119 0 0