1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Những đặc điểm mới của ADO.NET 2.0 pdf

4 622 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tài liệu những đặc điểm mới của ADO.NET 2.0 pdf
Thể loại Tài liệu
Định dạng
Số trang 4
Dung lượng 173,6 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Những đặc điểm mới của ADO.NET 2.0 Để có thể làm giảm bớt những hạn chế về thể hiện của các phiên bản ADO.NET trước đây và tăng tính mềm dẻo, Microsoft đã giới thiệu những đặc điểm mới

Trang 1

Những đặc điểm mới của ADO.NET 2.0

Để có thể làm giảm bớt những hạn chế về thể hiện của các phiên bản ADO.NET trước đây và tăng tính mềm dẻo, Microsoft đã giới thiệu những đặc điểm mới nhất trong ADO.NET 2.0 – Những đặc điểm mà có những sự khác biệt rõ ràng so với phiên bản ADO.NET 1.1

- Những thể hiện của DataSets với khối lượng dữ liệu lớn đã gây ra những vấn đề về thể hiện trong những phiên bản trước của ADO.NET Với phiên bản 2.0, bộ máy chỉ mục của Datatable đã được viết lại hoàn toàn để làm cho dễ dàng hơn trong việc xử lý

dữ liệu Và cũng có nhiều sự thay đổi trong các DataTable và DataSet

Dưới đây, là những đặc điểm nổi bật nhất trong ADO.NET 2.0, chứ không phải chỉ có những giới hạn như vậy

+ Nâng cấp các lớp DataSet và DataTable

+ Tối ưu các DataSet Serialization

+ Chuyển đổi từ DataReader thành DataSet hoặc DataTable

+ Phân trang

+ Batch Updates – Giảm sự xoay vòng dữ liệu

+ Truy cập dữ liệu bất đồng bộ

+ Mô hình cung cấp chung

+ Bulk Copy

1 Nâng cấp các lớp DataSet và DataTable:

- Trong ADO.NET 2.0, DataTable hỗ trợ 2 phương thức Load and Save Lưu ý lớp DataSet đã

hỗ trợ 2 phương thức này ngay từ bản đầu tiên của ADO.NET Trong khi phương thức Load có thể load dữ liệu từ XML và đưa vào các DataTable, thì phương thức Save lưu dữ liệu tới một nơi nhất định Hơn nữa, không giống như ADO.NET 1.1, Các lớp DataTable cũng hỗ trợ Tuần tự hóa Trong ADO.NET 1.1 chỉ có lớp DataSet mới hỗ trợ Tuần tự hóa Trong ADO.NET 2.0, lớp DataTable có một phương thức gọi là CreateTableReader mà trả về một thể hiện của

CreateTableReader, có thể được sử dụng không chỉ để đọc dữ liệu mà còn có thể thực hiện một

số hành động ở trạng thái Disconnect

Trang 2

2 Tối ưu Tuần tự hóa DataSet:

- Đối tượng DataSet trong ADO.NET là một biểu thị trong bộ nhớ của một tập hợp dữ liệu rời và cung cấp mô hình lập trình quan hệ nhất quán mà không cần quan tâm đến nguồn dữ liệu Khi chúng ta yêu cầu gửi một thể hiện lớp DataSet qua ranh giới của tiến trình, DataSet cần được theo tuần tự Nhưng Tuần tự hóa là gì? Tuần tự hóa là một tiến trình chuyển đổi một đối tượng trong bộ nhớ thành Dòng Byte tuần tự Tuần tự hóa hầu hết được sử dụng để gọi đối tượng hoặc giữ trạng thái của đối tượng tới một file hoặc CSDL

- Thật không may, lớp DataSet trong các phiên bản trước của ADO.NET được sử dụng để truyền

dữ liệu tuần tự như XML, thậm chí nếu bộ tuần tự nhị phân được xác thực Tuy nhiên trong ADO.NET 2.0, Tuần tự hóa DataSet đã cải tiến được quy mô lớn và bạn có thể sử dụng thuộc tính RemotingFormat của lớp DataSet để xác thực dữ liệu được lưu trữ trực tiếp theo định dạng nhị phân Vì thế, lớp DataSet trong ADO.NET 2.0 hỗ trợ cả XML và Định dạng tuần tự hóa nhị phân Ví dụ sau sẽ chứng mình điều này:

BinaryFormatter binaryFormatter = new BinaryFormatter();

FileStream fileStream = new FileStream("c:\\emp.dat", FileMode.CreateNew);

DataSet empDataSet = GetEmployeeDataSet(); //This is a custom method that creates, populates and then returns a DataSet instance

empDataSet.RemotingFormat = SerializationFormat.Binary;

//Serialize the employee Data Set instance as binary In order to serialize the

//same instance as XML, specify SerializationFormat.XML

binaryFormatter.Serialize(fileStream,empDataSet);

fileStream.Close();

3 Chuyển đổi từ DataReader sang DataSet hoặc DataTable:

- ADO.NET 2.0 cho phép load đối tượng DataReader vào một DataSet hoặc DataTable Cả 2 lớp DataSet và DataTable đều có phương thức Load mà được sử dụng để load thể hiện DataReader vào DataSet hoặc 1 DataTable

- Ví Dụ:

string connectionString = ; //Some connection string

SqlConnection sqlConnection = new SqlConnection(connectionString);

sqlConnection.Open();

SqlCommand sqlCommand = new SqlCommand("Select * from Employee", sqlConnection); SqlDataReader sqlDataReader =

Trang 3

sqlCommand.ExecuteReader(CommandBehavior.CloseConnection);

DataTable dataTable = new DataTable("Employee");

dataTable.Load(sqlDataReader);

- Phương thức GetDataReader của 2 lớp DataSet và DataTable có thể được sử dụng để nhận một thể hiện DataReader từ cả DataSet và DataTable

4 phân trang:

- Đây là đặc điểm mạnh nhất trong ADO.NET Chúng ta hãy nhớ lại rằng trong các phiên bản trước của ADO.NET, chúng ta cần phải quen với sử dụng các stored procedures để kết hợp thành chức năng phân trang trong ứng dụng của chúng ta Bây giờ, với ADO.NET 2.0, sẽ đơn giản hơn với phương thức ExecutePageReader trong lớp SqlDataReader Đoạn mã sau sẽ minh họa đặc điểm này hoạt động như thế nào

string connectionString = ; //some connection string

SqlConnection sqlConnection = new SqlConnection(connectionString);

sqlConnection.Open();

SqlCommand sqlCommand = new SqlCommand("Select * from Employee", sqlConnection); SqlDataReader sqlDataReader =

sqlCommand.ExecutePageReader(CommandBehavior.CloseConnection, 1, 25);

5 Batch Update:

- Batch Update: Cung cấp một cải tiến lớn trong phương thức thể hiện bằng cách tạo một vòng khứ hồi tới server cho nhiều Batch Updates, thay vì 1 số vòng nếu server CSDL hỗ trợ đặc điểm batch Updates Thuộc tính UpdateBatchSize cung cấp số lượng hàng được update trong một lớp Giá trị này có thể được thiết lập cho giới hạn của phần thập phân

6 Truy cập dữ liệu bất đồng bộ:

- Trong phiên bản trước của ADO.NET, các phương thức ExecuteReader, ExecuteScalar và ExecuteNonQuery thường khóa các luồng đang thực thi hiện tại Tuy nhiên, ADO.NET 2.0 hỗ trợ chế độ truy cập dữ liệu bất đồng bộ, những phương thức này cùng với phương thức Begin và End hỗ trợ sự thực thi bất đồng bộ

7 Mô hình cung cấp chung:

- trong những phiên bản ADO.NET cũ, nếu bạn muốn thực thi 1 layer truy cập dữ liệu độc lập, bạn phải thực thi Mô hình thiết kế Factory nơi mà 1 lớp sẽ chịu trách nhiệm trả về các đối tượng

cụ thể: Data Reader, DataAdapter hoặc Connection Trong DOTNET 2.0, chúng ta có thể tạo các đoạn mã truy cập dữ liệu độc lập thậm chí không cần tham chiếu đến các lớp cụ thể sử dụng Không gian tên System.Data.Common mà chứa tất cả các lớp Factory

- Lớp DbProviderFactory gồm 2 phương thức là GetFactoryClasses và Getfactory Trong khi

Trang 4

phiên bản cũ phải chịu trách nhiệm lấy tất cả các Provider hỗ trợ thì ngày phiên bản này được sử dụng để lấy provider cụ thể

- Ví Dụ:

DbProviderFactory dbProviderFactory =

DbProviderFactories.GetFactory("System.Data.SqlClient");

DbConnection dbConnection = dbProviderFactory.CreateConnection();

8 Đặc điểm Bulk Copy:

- Trước kia, việc sao chép một khối lượng lớn dữ liệu từ nơi lưu trữ dữ liệu tới một bảng trong CSDL SQL có rất nhiều khó khăn bởi vì sự truy cập dữ liệu lặp lại liên tục được yêu cầu Đặc điểm SqlBulkCopy trong ADO.NET 2.0 có thể cho chúng ta sao chép 1 khối lượng lớn dữ liệu nơi lưu trữ dữ liệu nguồn và bảng dữ liệu đích Lớp này có thể được sử dụng để xác thực nguồn

và địa chỉ nguồn dữ liệu cho hành động sao chép

- Ví Dụ:

SqlConnection connectionObjSource = new SqlConnection(Conn_str);

connectionObjSource.Open();

SqlConnection connectionObjTarget = new SqlConnection(Conn_str1);

connectionObjTarget.Open();

SqlCommand sqlCommand = new SqlCommand("Select * from Employee",

connectionObjSource);

SqlDataReader sqlDataReader =

sqlCommand.ExecuteReader(CommandBehavior.CloseConnection);

DataTable dt = new DataTable("Employee");

SqlBulkCopy sqlBulkcopy = new SqlBulkCopy(connectionObjTarget);

bulkcopy.DestinationTableName = "Employees";

bulkcopy.WriteToServer(sqlDataReader);

Trên đây là một số những đặc điểm mới nổi bật nhất trong ADO.NET 2.0 Những đặc điểm này

sẽ cải thiện được phần thể hiện và giảm số lượng mã tương đối nhiều

 

Ngày đăng: 22/12/2013, 22:16

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w