+44(0) 1234 567 890 info@domainname.com

Thursday, December 30, 2010

4. Sử dụng SqlDataReader

1:28 AM

Share it Please
Một khi đã tạo được kết nối tới cơ sở dữ liệu và thi hành các lệnh query thì chúng ta cần một phương thức nào đó để hỗ trợ cách xử lý dữ liệu thu nhận được. Nếu bạn đã biết về ADO thì một ADO.NET data reader giống như là ADO recordset một chiều phía client, chứ không phải là một đối tượng COM.
Data readers là các đối tượng được cung cấp trong lớp interface ‘System.Data.IdataReader’. Một ‘Data Reader’ có thể gọi là một stream đã kết nối tới cơ sở dữ liệu đọc dữ liệu hiệu quả, theo một chiều và thu nhận dữ liệu theo từng dòng (row).Vì vậy không thể trực tiếp xử lý data reader mà phải xử lý thông qua phương thức ‘ExecuteReader’ của một đối tượng command.
Ví dụ
:

SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(new string(“query command”), conn);
SqlDataReader reader = cmd.ExecuteReader();

Đoạn code ở trên là minh họa cách tạo một đối tượng trong lớp SqlDataReader.

Chú ý: Quy tắc chung khi sử dụng data reader đơn giản là chỉ thu nhận và trình bày kết quả thu được bằng cách duyệt từng dòng kết quả để xử lí hoặc hiển thị ra.

Thử một vài ví dụ làm việc với Data Reader



using System;
using System.Data;
using System.Data.SqlClient;

public class DemoSqlDateReader
{
public static void Main()
{
// Tạo connection
SqlConnection conn = new SqlConnection(@"Server = NguyenVanthanh;
Integrated Security = True;
Database = Demo");
// Tạo query
string sql = @"SELECT masv FROM sinhvien";
try
{
// Mở kết nối
conn.Open();
// Tạo command
SqlCommand cmd = new SqlCommand(sql, conn);
// Tạo Data Reader
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(" {0} ", reader[0].ToString());
}
reader.Close();
}
catch (SqlException ex)
{
// Thông báo lỗi
Console.WriteLine(ex.Message.ToString());
}
finally
{
// Đóng kết nối
conn.Close();
Console.WriteLine("Close connection !");
}
}
}


Trong vòng lặp thu kết quả của ‘data reader’ (reader) phương thức ‘Read()’ trỏ đến giá trị hàng tiếp theo (nếu có) . Bản chất khi reader đã có kết quả sau khi thực thi query thì reader nắm giữ toàn bộ record thu được. vì vậy có thể dùng index để gọi đến một giá trị bất kì trong kết quả thu được nằm trong giới hạn của bound.

Cuối cùng thì phải đóng lại reader. Tại sao đóng ? Vì khi đã kết nối và reader được gắn vào kết nối thì reader sẽ nằm ở đó để lấy dữ liệu khi xử lý. Cứ tưởng tượng một ngôi nhà mà chỉ có người vào không có người ra thì đến một lúc nào đó sẽ không vào được nữa mà muốn ra cũng không được. Tương tự như vậy, phải đóng lại reader sau mỗi lần đọc.


using System;
using System.Data;
using System.Data.SqlClient;

public class DemoSqlDataReader
{
public static void Main()
{
// Tạo connection
SqlConnection conn = new SqlConnection(@"Server = NguyenVanThanh;
Integrated Security = True;
Database = Demo");
// Tạo query
string sql = @"SELECT MaSV,TenSV FROM SinhVien";
try
{
// Mở kết nối
conn.Open();
// Tạo command
SqlCommand cmd = new SqlCommand(sql, conn);
// Tạo Data Reader
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("{0} | {1}", reader[0].ToString(),reader[1].ToString());
}
reader.Close();
}
catch (SqlException ex)
{
// Thông báo lỗi
Console.WriteLine(ex.Message.ToString());
}
finally
{
// Đóng kết nối
conn.Close();
Console.WriteLine("Close connection !");
}
}
}


reader[0] : chính là MaSV
reader[1] : chính là TenSV

Giả sử chúng ta SELECT TenSV,
MaSV FROM SinhVien
thì
reader[0] : chính là TenSV còn reader[1] : chính là MaSV
Trong ví dụ trên sẽ in ra kết quả như sau:
001|SinhVien1
002|SinhVien2
.......

Để hiều rõ hơn các bạn xem video demo sau: Download
Chúc các bạn thành công!

0 comments:

Post a Comment

Tags

Thủ thuật pc Góc Làm Đẹp Làm Đẹp Da Thủ Thuật Blogspot - Wordpress - Joomla Thủ Thuật Network Giải trí Thủ Thuật Hay thu-thuat-blogspot ASP.NET Danh bạ Lập trình CSDL Thủ Thuật Blog Lập trình Thủ thuật Excel Phần Mềm Góc Phụ Nữ SEO TT Windows Lý Thuyết CCNA Dịch Vụ Hot CCNA Sức Khỏe - Đời Sống Office Thủ Thuật Mobile Thủ Thuật Win 8 Download Xây dựng liên kết Android Thủ thuật Word Website thu-thuat-internet Forum PHP Tư Vấn Làm Đẹp Mẹo Vặt tien-ich-widget Đọc báo ASP.NET MVC Ca nhạc Hỏi Đáp Thơ Vui Thủ Thuật Game vui-nhon Download Phần Mềm - Crack VBA Excel thu-thuat-facebook Cuộc sống Download Game Photoshop Thủ thuật Blogspot VBA trong Excel Widget Blogspot Địa Điểm Hot C# CSS Giới Tính Tài Liệu Đại học Chuyện lạ Clip Hài - Video Hot Góc Kỹ Năng Góc Sinh Viên Liên Minh Huyền Thoại Sao Sức Khỏe Giới Tính Thủ Thuật Tin Học template-blogger Chuyện Của Sao Design Pattern Kiến thức cơ bản PM hệ thống Thủ thuật Facebook Tin nổi bật Đề thi LAB CCNA Love story Học và hỏi Môn toán Spring.NET Tủ Sách Video lam-quen-voi-blogger Ảnh Vui Bảng Giá Con trai Cẩm nang du học Dependency Injection Hình ảnh Kinh nghiệm học Kỹ Năng Xin Việc Luật Pháp ORM Tin nóng Tiện ích Truyện cười Việt Nam hinh-anh-hai-huoc tho-vui-con-coc thu-thuat-phan-mem Blogspot Distributed Technologies Hợp Tác Kinh Doanh Khám phá MVP NHibernate Photoshop Action Thủ Thuật Win 7 Trẻ Tư Vấn Tiêu Dùng VietYeah TV Xã Hội thu-thuat-SEO Blogger Templates Game flash Khối B Nghịch Nhân vật Phong Cách Slider Thư giãn Thủ thuật Youtube WCF facebook hinh-anh-dep thu-thuat-may-tinh Đời Sống 2010 Con gái Download Game Mobile Drivers External Post Học Nấu Ăn Học vui Làm Đẹp Tóc MVC N-Tier PM hệ điều hành Sao Quốc tế Thủ thuật internet Thông Tin Tin Tức Hot Tivi Truyện Hay Tuyển Dụng Xả Stress Youtube anh-bia-facebook san-pham-google ung-dung-website Đáp án Đề thi thử AOP Abstract Factory Cool stuffs Design Principles Khối A Thông tin mạng Tình yêu lập trình viên phan-mem-van-phong thu-thuat-windows-7 thu-thuat-windows-8 Điện Tử Ảnh Nghệ Thuật 2009 2011 2012 Adapter Pattern Công Nghệ Factory Method Game Hình sự Khối D Kiếm Tiền Qua Mạng Kỹ Năng Nơi Công Sở LinQ Menu Miễn phí Photoshop PSD Sexy Singleton Sành điệu Thủ Thuật Di Động Tin nhắn SMS phan-mem-do-hoa phan-mem-tien-ich Đọc xong vọc liền .NET Remoting 10-thing series 2013 Ajax Bridge Pattern Bóng đá Castle Windsor Chơi Game Online Cover Facebook Có Thể Bạn Chưa Biết Download Phim Dịch vụ Fedora Garbage Collection Google Plus Góc Tâm Sự HTML Hibernate Hài hước IoC JSF Javascript Jquery Khối C Kỹ Năng Bán Hàng Kỹ Năng Thuyết Trình Lazy Load Linux Lock Log4Net MWC Memory Management Mock Multi-Thread MySQL Môn sử Mặc Đẹp Mẹ Và Bé Mỹ Tâm NUnit Ngọc Trinh Nhịp sống trẻ PM văn phòng POCO Passive View Photoshop tách ảnh Phạm Băng Băng Phầm Mềm Crack PostSharp Primefaces Shop Bít Tuốt Strategy Pattern Supervising Controller Sự kiện Thể thao Thủ Thuật Office Tin đặc biệt Toán Tình bạn Tình dục Tốt nghiệp Unit Testing VBA Word Virtual Server Văn WMC 2012 Windows Service acc fshare acc mien phi anh-nghe-thuat cntt di dong di động dropbox dung luong dropbox fshare hinh nen hinh nen dep hình nền job mac os mang xa hoi may ao mạng xã hội social tang dung luong dropbox thu-thuat-mobile thu-thuat-windows-xp tháng 2 top truyen-cuoi tăng dung lượng dropbox vmware Ảnh đẹp