18/01/2014

Bài 04: Đọc dữ liệu với SqlDataReader

  • Đối tượng SqlDataReader đọc dữ liệu một cách tuần tự, vì thế mà bạn phải lưu dữ liệu sau khi đọc xong, vì nó không thể quay trở lại và đọc lại lần nữa
  • Mục tiêu bài học:
    - Tìm hiểu về đối tượng SqlDataReader
    - Cách đọc dữ liệu bằng SqlDataReader
    - Sự cần thiết khi đóng đối tượng SqlDataReader

    Giới thiệu
    Đối tượng SqlDataReader là một loại rất tốt cho việc đọc dữ liệu một cách hiệu quả nhất, nó không thể dùng cho việc ghi dữ liệu.
    Đối tượng SqlDataReader đọc dữ liệu một cách tuần tự, vì thế mà bạn phải lưu dữ liệu sau khi đọc xong, vì nó không thể quay trở lại và đọc lại lần nữa. Do đó, nếu chúng ta cần đọc duy nhất cho một nhóm dữ liệu thì SqlDataReader là lựa chọn tốt nhất. Ngoài ra, nếu số lượng dữ liệu cần đọc lớn hơn những gì mà chúng ta mong muốn được lưu trữ trong bộ nhớ thì lựa chọn SqlDataReader là cách tốt nhất cho trường hợp này. Đôi khi, chúng ta nên sử dụng DataSet sẽ thích hợp hơn vì DataSet được lưu trong bộ nhớ cache.
    Các thao tác với SqlDataReader
    Bước 01: Tạo một đối tượng SqlDataReader. sử dụng phương thức ExecuteReader()
    SqlDataReader dr = sqlCommand.ExecuteReader();
    Bước 02: Đọc dữ liệu, dưới đây tôi trình bày một ví dụ về cách đọc dữ liệu đơn giản
    while (dr.Read())
                    {
                        int iD = (int)dr[0];
                        string name = (string)dr[1];
                        Console.Write("{0,-25}", iD);
                        Console.Write("{0,-25}", name);
                        Console.WriteLine();
                    }
    Bước 03: Đóng SqlDataReader để giải phóng bộ nhớ như là đóng kết nối ở đối tượng SqlConnection, và ở đây tôi dùng khối try{...} catch {...} để kiểm soát mã lệnh.
    try
                {
    ....
                }
    finally
                {
                    if (dr != null) dr.Close();
                    if (sqlConn != null) sqlConn.Close();               
                }
    Demo cho đối tượng SqlDataReader
    public void ReadData()
            {
                SqlConnection sqlConn = new SqlConnection("Data Source=ifsoft;user id=sa;pwd=123;database=ADO.NET");
                sqlConn.Open();
                SqlCommand sqlCommand = new SqlCommand("SELECT * FROM Example", sqlConn);
                SqlDataReader dr = sqlCommand.ExecuteReader();
                try
                {
                    while (dr.Read())
                    {
                        int iD = (int)dr[0];
                        string name = (string)dr[1];
                        Console.Write("{0,-25}", iD);
                        Console.Write("{0,-25}", name);
                        Console.WriteLine();
                    }
                }
                finally
                {
                    if (dr != null) dr.Close();
                    if (sqlConn != null) sqlConn.Close();               
                }
            }
    Xin chúc các bạn học tập thật tốt!
    Tham khảo: http://truongminhtuan.info/Lesson/details?LessonId=16

No comments:

Post a Comment