Lập trình Web ASP.Net - Chương 4: Xử lý dữ liệu với ADO.NET - Vũ Đức Lung

Tài liệu Lập trình Web ASP.Net - Chương 4: Xử lý dữ liệu với ADO.NET - Vũ Đức Lung: LHU 1 LẬP TRÌNH WEB ASP.NET Trường Đại Học Lạc Hồng 2009 - 2010 Ts. Vũ Đức Lung Ks. Phan Hữu Tiếp Xử Lý Dữ Liệu Với ADO.NET Chương 4: Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 2 Nội dung chính  Giới thiệu về ADO.NET  Các đối tượng trong ADO.NET  Điều khiển liên kết dữ liệu Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 3 Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 4 Giới thiệu về ADO.NET  Ứng dụng cần CSDL: người dùng, ứng dụng, file,  CSDL quan hệ => lưu trữ theo hệ quản trị CSDL: Access, MS SQL Server, Oracle.  Người thiết kế quan tâm:  Lưu trữ dữ liệu tập trung  Đảm bảo toàn vẹn dữ liệu  Khả năng truy xuất đồng thời  Thời gian hồi đáp ngắn  Bảo mật dữ liệu  Trao đổi giữa các hệ thống khác nhau Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 5 Giới thiệu về ADO.NET  ADO.NET (Active Data Object) là một phần của .NET Framework, cung cấp c...

pdf72 trang | Chia sẻ: putihuynh11 | Lượt xem: 1069 | Lượt tải: 1download
Bạn đang xem trước 20 trang mẫu tài liệu Lập trình Web ASP.Net - Chương 4: Xử lý dữ liệu với ADO.NET - Vũ Đức Lung, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
LHU 1 LẬP TRÌNH WEB ASP.NET Trường Đại Học Lạc Hồng 2009 - 2010 Ts. Vũ Đức Lung Ks. Phan Hữu Tiếp Xử Lý Dữ Liệu Với ADO.NET Chương 4: Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 2 Nội dung chính  Giới thiệu về ADO.NET  Các đối tượng trong ADO.NET  Điều khiển liên kết dữ liệu Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 3 Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 4 Giới thiệu về ADO.NET  Ứng dụng cần CSDL: người dùng, ứng dụng, file,  CSDL quan hệ => lưu trữ theo hệ quản trị CSDL: Access, MS SQL Server, Oracle.  Người thiết kế quan tâm:  Lưu trữ dữ liệu tập trung  Đảm bảo toàn vẹn dữ liệu  Khả năng truy xuất đồng thời  Thời gian hồi đáp ngắn  Bảo mật dữ liệu  Trao đổi giữa các hệ thống khác nhau Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 5 Giới thiệu về ADO.NET  ADO.NET (Active Data Object) là một phần của .NET Framework, cung cấp các dịch vụ xử lý dữ liệu  Làm việc với dữ liệu không kết nối  Dữ liệu được lưu trữ trong một CSDL thu nhỏ gọi là DataSet =>tăng tốc độ tính toán, giảm sử dụng tài nguyên trên Database server.  Khả năng xử lý dữ liệu dạng chuẩn XML =>làm việc với nhiều ứng dụng khác Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 6 Giới thiệu về ADO.NET Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 7 Giới thiệu về ADO.NET  Kiến trúc ADO.NET có hai đối tượng chính: Dataset (data table) và .NET data provider (Data Adapter, DataReader, Command, Connection)  Dataset lưu data từ Database  Để nhận data từ CSDL, DataAdapter dùng câu lệnh SELECT trong Command, để cập nhật data dùng INSERT, UPDATE, DELETE Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 8 Giới thiệu về ADO.NET  Các thành phần trong ADO.NET  DataSet  DataTable  DataView  DataRow  DataColumn  DataRelation Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 9 Các thành phần trong ADO.NET  Managed provider component: gồm DataAdapter, DataReader giữ nhiệm vụ làm việc trực tiếp như tập tin, database,  Content component: gồm Dataset, DataTable, đại diện cho dữ liệu thực sự cần làm việc.  DataReader là đối tượng mới, giúp việc truy xuất dữ liệu nhanh chóng nhưng chỉ được phép đọc và di chuyển tới  Dataset cũng là đối tượng mới, không chỉ là dữ liệu, Dataset còn có thể coi là một bản sao gọn nhẹ của CSDL trong bộ nhớ với nhiều bảng và có các mối quan hệ. Dataset hỗ trợ XML thông qua đối tượng XMLDataDocument.  DataAdapter là đối tượng kết nối giữa DataSet và CSDL. Nó gồm Connection và Commmand, để cung cấp dữ liệu cho Dataset, cũng như cập nhật dữ liệu từ DataSet xuống CSDL. Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 10 Các thành phần trong ADO.NET Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 11 Các thành phần trong ADO.NET  DataSet:  DataSet dùng để chứa dữ liệu lấy từ CSDL lớn ( SQL, Aceess) sau đó mọi thông tin cần thiết sẽ được truy xuất từ DataSet  Nói 01 cách khác DataSet là CSDL thu nhỏ từ CSDL lớn  Trong Dataset sẽ chứa các bảng là thông tin mà chúng ta cần lấy.Trong DataSet sẽ có nhiều DataTable và các mối quan hệ giữa chúng đại diện bởi các DataRelation  Dataset giống như là hình ảnh về CSDL trong bộ nhớ . Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 12 Các thành phần trong ADO.NET  Lợi ích trong việc sử dụng DataSet  Hoàn toàn trong bộ nhớ: Một Table trong Dataset là một Array of Rows, nên ta có thể dùng thẳng (direct access) một record bằng cách nói đến cái Row chứa nó, chớ không cần phải dùng MoveNext, MovePrev,.v.v.  Làm nhẹ công tác của Database server. Tất cả mọi công tác sửa đổi dữ liệu đều được thực hiện trong Dataset.  Dataset có thể được biểu diễn bằng một XML (eXtensible Marked Language) Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 13 Các thành phần trong ADO.NET  DataTable:  DataTable là 01 thành phần trong Dataset  DataTable chứa dữ liệu của 01 bảng trong Dataset và thuộc lớp DataTable. DataTable bao gồm • Tập hợp Columns thuôc lớp DataColumnCollection trong đó mỗi cột là một đối tượng thuộc lớp DataColumn • Tập hợp Rows thuôc lớp DataRowCollection trong đó mỗi cột là một đối tượng thuộc lớp DataRow Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 14 Các thành phần trong ADO.NET  DataRelation:  Dataset bao gồm tập hợp các table đại diện bởi các đối tượng DataTable và quan hệ giữa các table đó đại diện bởi các đối tượng DataRelation  DataRelation, người dùng có thể: • Định nghĩa mối quan hệ giữa các bảng • Duyệt dữ liệu trong các bảng theo mối quan hệ Master – Detail  Một đối tượng kiểu DataRelation bao gồm các thông tin: • Tên của Parent Table và Child Table • Các column trong DataRelation đại diện cho PrimaryKey trong Parent và ForeignKey trong Child Table Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 15 Các thành phần trong ADO.NET  DataRelation:  Với DataRelation, ADO.NET cung cấp cho người lập trình một cách thức mới để xử lý dữ liệu. Dữ liệu vẫn nằm trong các bảng thay vì bị gom từ nhiều bảng thành 01 RecordSet nhưng vẫn có thể truy cập dễ dàng và hiệu quả.  Ví dụ: trong parent table có 10 dòng, mỗi dòng trong Parent table có 10 dòng con trong Child table  Cách cũ: dùng 01 truy vấn kết hợp hai bảng để lấy 1 lần 100 mẫu tin hay dùng 02 RecordSet, mỗi lần RecordSet Master thay đổi mẫu tin hiện hành thì mở lại RecordSet Detail Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 16 Các thành phần trong ADO.NET  DataRelation:  Khuyết điểm: dữ liệu bị lấy thừa vì không chắc người dùng sẽ đi xem hết 100 mẫu tin đã lấy và khó thao tác thêm, sửa, xóa, Với cách thứ 2, dữ liệu chỉ lấy vừa đủ nhưng chậm hơn vì mỗi lần thay đổi Master lại phải truy vấn dữ liệu cho Detail  Phương pháp mới: Chỉ cần lấy dữ liệu 01 lần duy nhất nhưng dữ liệu vẫn nằm trong các bảng, dễ dàng thao tác xử lý Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 17 Các thành phần trong ADO.NET  Ràng Buộc Trên Quan Hệ: ADO.NET chỉ cho phép xác định 02 loại ràng buộc  UniqueConstraint: đảm bảo tính duy nhất về giá trị của một cột trong table  ForeignKeyContraint: chỉ ra cách ứng dụng sẽ thực hiện khi cập nhật hay xóa dữ liệu trên bảng có quan hệ với bảng khác  Các giá trị của ForeignKeyContraint là:  None: không làm gì cả  Cascade: phụ thuộc vào dòng trên parent table sẽ bị cập nhật hay xóa  SetDefault:giá trị của cột khóa ngoại trên detail table được đặt về giá trị mặc định khi dòng trên parent table bị xóa  SetNull: giống SetDefault , giá trị được đặt là NULL Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 18 Các thành phần trong ADO.NET  DataView:  DataView gần giống với khái niệm RecordSet của ADO. Trên một DataTable có thể tạo nhiều DataView với các điều kiện lọc, sắp xếp dữ liệu khác nhau. Trên DataView ta có thể xem hay thay đổi giá trị các mẫu tin  DataView của ADO.NET có nhiệm vụ kết nối với các control của WinForm và Web Form Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 19 Điểm nổi bật trong ADO.NET  Tương tác giữa nhiều hệ thống khác nhau (Interoperability)  Hỗ trợ nhiều người dùng (Scanlability)  Mở rộng khả năng làm việc với CSDL (Productivity)  Hiệu quả cao trong xử lý dữ liệu (Performance)  Cơ chế làm việc ở ADO.NET:  Xử dụng dữ liệu ở dạng disconnect data  Client tạo kết nối với server để lấy dữ liệu  Server gửi dữ liệu về cho Client  Client ngắt kết nối với Server  Khi cần cập nhật dữ liệu, kết nối giữa Client và Server được phục hồi  Thời gian kết nối giữa Client và Server không còn lâu như trước Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 20 Các đối tượng trong ADO.NET  Khai báo và sử dụng không gian tên (namespace) Namespace Mục đích -System.Data -System.Data.OleDb -System.Data.SqlClient -Các đối tượng và kiểu cơ bản phục vụ ADO.NET -Các lớp được thiết kế để làm việc với bất kỳ nguồn dữ liệu nào - Thiết kế tối ưu cho CSDL SQL server Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 21 Đối tượng Connection  Data Provider:  Data Provider có sẵn trong ADO.NET • System.Data.OleDb • System.Data.SqlClient  Ứng với mỗi tên miền có một connection tương ứng  System.Data.OleDb.OleDbConnection  System.Data.SqlClient.SqlConnection  Cả OleDBConnection và SQLConnection đều có các thuộc tính và phương thức giống nhau như ConnectionString , State hay Open - Các Provider mà OLEDB và SQL có thể kết nối dữ liệu:  SQLOLEDB: OLEDB Provider của Microsoft cho SQL Server  MSDAORA: OLEDB Provider của Microsoft cho Oracle  JOLT: OLEDB Provider cho Jet Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 22 Đối tượng Connection  Connection String:Cung cấp thông tin cần thiết cho kết nối.  Trước khi thực hiện kết nối cần thông báo các thông tin cần thiết cho Connection thông qua thuộc tính Connection String. Cách khai báo thay đổi tùy thuộc vào Data Provider.  Phụ thuộc vào Data Provider  OleDB Provider có thể gồm các thành phần: Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 23 Đối tượng Connection  Ví dụ 1: Tạo connection đến CSDL Microsoft Access  Ví dụ 2: Tạo connection đến CSDL SQL Server Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 24 Đối tượng Connection Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 25 Đối tượng Connection  Ví dụ 3: Tạo connection đến CSDL SQL Server Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 26 Đối tượng Connection  Ví dụ 4: Tạo connection đến CSDL SQL Server Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 27 CÁC ĐỐI TƯỢNG TRONG ADO.NET I.CONNECTION: Các bước thực hiện tiến hành kết nối Bước 1: tạo 1 file có đuôi .UDL. Nhấp đúp vào file để kích hoạt Bước 2: 01 hộp thoại xuất hiện: Chọn mục: Microsoft OLEDB Provider for SQL Server Trong Tab Provider Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 28 CÁC ĐỐI TƯỢNG TRONG ADO.NET I.CONNECTION: 1.Gõ tên Server 2. Chọn quyền kết nối 3 .Nhập username và pass word 4. Chọn Database sử dụng 5. Nhấn TestConnection Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 29 CÁC ĐỐI TƯỢNG TRONG ADO.NET I.CONNECTION: Bước 3: Mở File vừa tạo bằng Notepad ta sẽ có chuỗi kết nối. Đăng nhập bằng quyền Window Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ETEST;Data Source=GOATM Đăng nhập bằng username và password Provider=SQLOLEDB.1;Persist Security Info=False;User ID=etest;Initial Catalog=ETEST;Data Source=GOATM Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 30 CÁC ĐỐI TƯỢNG TRONG ADO.NET I.CONNECTION: Tạo connection đến CSDL SQL: Imports System.Data.slqClient Dim strconnection as string Strconnection=“Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ETEST;Data Source=GOATM” Dim ConnDB as new SqlConnection(strconnection) Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 31 Đối tượng Connection  Các phương thức cần chú ý trong Connection  Close: đóng kết nối với nguồn dữ liệu. Sử dụng phương thức này để đóng Connection đang mở  Open: Thực hiện kết nối với các thông tin đã khai báo trong ConnectionString  Dispose: Xóa mọi tài nguyên liên quan đến Connection trên vùng nhớ  CreateCommand: Tạo và trả về 01 Command dựa vào Connection hiện hành  Ví dụ:  ConnDB.Open()  ConnDB.Close()  ConnDB.Dispose() Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 32 Đối tượng Connection  Một số đặc tính quan trọng khác của OleDbConnection Đặc tính Dạng data Ý nghĩa Connection Timeout Int32 khoảng thời gian cố gắng tạo liên kết VD: ConnString= "Provider.; Connect Tirneout=11" Database String Trả về tên CSDL đã kết nối ServerVersi on String Trả về version của nguồn CSDL State StateConnection (0,1,2,4,8,16) Trả về trạng thái hiện tại của đối tượng: actived hay hủy rồi Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 33 Đối tượng Command  Sau khi tạo kết nối đến nguồn dữ liệu, mọi thao tác trên nguồn dữ liệu đó đều được thực hiện thông qua Command. Tùy theo loại Connection, đối tượng Command thuộc tên miền sau: Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 34 Đối tượng Command  Khai báo và sử dụng đối tượng Command:  đối với SqlConnection: • Dim MyCom As SqlCommand • MyCom = New SqlCommand(ConnString, ConnDB)  đối với OleDbConnection • Dim MyCom As OleDbCommand • MyCom = New OleDbCommand(ConnString,ConnDB) Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 35 Đối tượng Command II.COMMAND: Các thuộc tính của Command:  CommandText: lệnh SQL hay tên Procedure muốn thực hiện trên nguồn dữ liệu (đọc ghi)  CommandType:giá trị cho biết nội dung CommandText là gì với các giá trị như sau:  Text: (mặc định)một câu lệnh SQL  StoreProcedure: tên 01 thủ tục nội  TableDirect: khi CommandType có giá trị này, CommandText là tên của 01 bảng. Khi Command thực hiện sẽ trả về đủ các dòng và cột ( chỉ dùng cho OleDbCommand) Connection: Đối tượng Connection sử dụng cho Command Parameters: Tập hợp các tham số dùng trong Command Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 36 Đối tượng Command  Các phương thức thực hiện Command  ExecuteNonquery: Dùng để gọi thực hiện các câu truy vấn cập nhật INSERT, UPDATE, DELETE mà không quan tâm đến dữ liện trả về. Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 37 Đối tượng Command  ExecuteReader: Trả về một đối tượng DataReader để đọc dữ liệu mỗi lần một dòng với method Read(). DataReader đọc dữ liệu trực tiếp từ Database => duy trì kết nối cho đến khi đọc xong  Gọi: MyCom.ExecuteReader()  ExecuteScalar: phương thức này thực hiện lệnh của Command và chỉ trả về giá trị của cột đầu tiên hay dòng đầu tiên. Chúng ta thường gọi phương thức này khi muốn Command thực hiện các lệnh tính toán Sum, COUNT, AVG trên nguồn dữ liệu ngay lúc thực thi. Cú pháp như sau:  MyCom.ExecuteScalar() Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 38 Đối tượng Command II.Paramater: - Lệnh SQL trong CommandText có thể sử dụng các dấu ? thay thế cho trị không xác định và khi thực hiện sẽ dùng đối tượng Parameter để truyền giá trị vào các dấu ?. Tùy theo Command, Paramater sẽ khai báo từ lớp OleDBParameter hay SQLParameter. Cú pháp khai báo: Dim as new OleDbParameter | SqlParameter Dim as new OleDbParameter | SqlParameter() Dim as new OleDbParameter | SqlParameter(, ) Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 39 Đối tượng Command Paramater: Các thuộc tính của Parameter:  Direction: giá trị cho biết loại tham số với các giá trị sau: (đọc ghi)  input(mặc định): loại tham số đầu vào  InputOutput: loại tham số vào và ra  Output: loại tham số ra  ReturnValue: loại tham số nhận giá trị trả về của 01 thủ tục nội, một hàm hay một hàm do người dùng định nghĩa  OledbType / SqlDBType :kiểu dữ liệu Oledb hay SqlDB của tham số(đọc ghi)  ParameterName: tên tham số (đọc ghhi)  Value: giá trị của tham số (đọc ghi) Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 40 Đối tượng Command Paramater: Ví dụ 1: cmd.CommandText=“select * from CTNHAP where sopn=@sp” Dim par as SqlParameter=cmd.CreateParameter() Par.Parametername=“@sp” Par.Value=“PN01” cmd.Parameter.Add(Par) Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 41 Đối tượng Command Paramater: Ví dụ 2: cmd.CommandText=“select * from CTNHAP where sopn=@sp and mavtu=@vt” Dim ts1 as SqlClient.Sqlparameter=cmd.parameters.Add(“@vt”,sqlDbType.Char,4) Ts1.Value=“S001” Dim ts2 as SqlClient.Sqlparameter=cmd.parameters.Add(“@sp”,sqlDbType.Char,4) Ts2.Value=“PN01” Chú thích: thứ tự đưa tham số vào tùy ý vì phải chỉ đúng tên tham số trong SQL Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 42 Quy trình truy xuất 01 CSDL đơn giản trong ASP.NET Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 43 Ví dụ: Create a Database Connection Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 44 Ví dụ: Create a Database Command Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 45 Ví dụ: Create a DataReader Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 46 Bind to a Repeater Control and Close the Database Connection Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 47 Repeater Control Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 48 Tạo kết nối với CSDL động  Demo tạo kết nối và hiển thị  DataSet  DataAdapter  DataTable  DataView Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 49 DataSet  Đây là 01 mô hình thu nhỏ đáp ứng nhu cầu của ứng dụng  DataSet chứa các bảng(DataTable), các quan hệ(DataRelation) và các ràng buộc ( Contraint)  DataSet thuộc tên miền sau: System.Data.DataSet  Các chức năng chính của DataSet:  Làm việc với dữ liệu không liên kết  Khả năng dịch chuyển, sắp sếp, tìm và lọc dữ liệu  Cache những thay đổi  Làm việc với XML-document  Khai báo Dataset  Cú pháp: New System.Data.Dataset()  Hoặc New system.Data.DataSet() với : tên của DataSet  Cách khác: Ta có thể dùng công cụ DataSet trong hộp thoại ToolBox Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 50 Ví dụ: Tạo đối tượng DataSet Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 51 DataSet  Các thuộc tính của DataSet:  DataSetName: Tên của DataSet (đọc ghi)  HasErrors: giá trị cho biết lỗi xảy ra trên 01 trong các bảng của DataSet: True/False ( chỉ đọc)  Relations: tập hợp các quan hệ(DataRelation) một nhiều của Dataset ( chỉ đọc)  Tables: Tập hợp các bảng (DataTable) của DataSet (chỉ đọc) Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 52 Các phương thức của Dataset  Thêm một bảng vào Dataset  Muốn đưa 01 bảng DataTable vào Dataset, chúng ta dùng phương thức Add của tập hợp Tables:  Cú pháp: • Tables.Add(): bảng được tạo có tên table1, table2, • Tables.Add(): 01 bảng mới được tạo thành trong Dataset có tên là  Chú ý: tên bảng có phân biệt chữ hoa, chữ thường Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 53 Các phương thức của Dataset  Xóa bảng ra khỏi dataset:  Tables.Remove(): xóa bảng ra khỏi tập hợp Table  Xóa bảng có chỉ số là ra khỏi tập hợp Tables: Tables.RemoveAt()  Xóa tất cả các bảng ra khỏi danh sách: Tables.Clear()  Lệnh kiểm tra Bảng có thể xóa hay không? :  Tables.CanRemove(): • Trả về True: có thể xóa • False: không thể xóa vì đang xử dụng Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 54 Các phương thức của Dataset  Kiểm tra bảng có thuộc về Dataset hay không ?  Tables.Contains()  Xóa bỏ mọi dữ liệu trên Dataset  Clear()  Xóa bỏ Dataset  Disponse Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 55 Các phương thức của Dataset Để tạo 01 quan hệ giữa hai bảng trong DataSet: Chúng ta sử dụng cú pháp Add của tập hợp Relation trong Dataset với các cú pháp sau: Relations.Add(,, ) Relations.Add(,,< DataColumn trên bảng con>, ) Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 56 Các phương thức của Dataset Xóa quan hệ khỏi DataSet: ta dùng phương thức sau: Relations.Remove()  Xóa quan hệ ra khỏi tập hợp Relations của Dataset Relations.Remove()  Xóa quan hệ ra khỏi tập hợp Relations của Dataset Kiểm tra quan hệ có xóa được hay không ? Relations.CanRemove() Trả về True: có thể xóa, False: không thể xóa Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 57 DataAdapter  Lấy cấu trúc và dữ liệu của các bảng trong nguồn dữ liệu về cho DataSet và cập nhật các thay đổi về nguồn dữ liệu gốc Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 58 DataAdapter  DataAdapter là một bộ gồm bốn đối tượng Command:  SelectCommand: cho phép lấy thông tin từ nguồn dữ liệu về  InsertCommand: cho phép chèn thêm dữ liệu vào bảng trong nguồn dữ liệu  UpdateCommand: cho phép sửa đổi dữ liệu trog nguồn dữ liệu nguồn  DeleteCommand: cho phép hủy bỏ dữ liệu trên bảng trong nguồn dữ liệu  Ta cầ hiểu rõ nội dung lệnh truy vấ cho SelectCommand, nội dung các đối tượng còn lại có thể sử dụng đối tượng thích hợp để tự động phát sinh hay chỉ rõ lệnh cho từng đối tượng Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 59 DataAdapter Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 60 DataAdapter  TableMappings Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 61 DataAdapter  TableMappings Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 62 Tạo DataAdapter Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 63 Các chức năng của DataAdapter  Lấy dữ liệu từ nguồn về cho DataSet, DataTable qua method Fill Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 64 Các chức năng của DataAdapter  Lấy cấu trúc dữ liệu từ nguồn Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 65 Các chức năng của DataAdapter  Tạo bộ lệnh cập nhật cho DataAdapter Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 66 DataTable  Dữ liệu các bảng trong nguồn dữ liệu được lấy về và đưa vào các DataTable. DataTable thuộc tên miền:  System.Data.DataTable  Cách khác: Dim Bang_x as New DataTable  Cách khác: Dim bang_x as New DataTable(<tên bảng) Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 67 DataTable – Tập hợp Rows  Rows là tập hợp các dòng dữ liệu của bảng vì vậy mọi tham chiếu đến dòng đều thông qua tập hợp này  Các chức năng chính của Rows:  Rows.Count  Rows.Item() hoặc Rows()  Rows.Item(,) hoặc • a Rows(,) • aRows(,)  Thêm dòng vào bảng • Dim NewRow As DataRow • NewRow = .NewRow() • .Rows.Add()  Rows.Add()  Rows.Remove (), Rows.RemoveAt()  Rows.Clear() Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 68 DataTable – Tập hợp Column  Tương tự như Rows, Columns là tập hợp các cột dữ liệu của bảng vì vậy mọi tham chiếu đến cột đều thông qua tập hợp này  Columns.Count  Columns.Item()  Columns.Item()  Columns()  Columns() Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 69 DataView  Cung cấp các phương pháp thuận tiện cho việc liên kết dữ lịêu với các điều khiển, sắp xếp,  Tạo DataView  New DataView()  New DataView()  New DataView(,, , )  Ví dụ: Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp http:// lhu.edu.vn 70 Các thuộc tính của DataView AllowDelete cho phép thao tác xóa dòng trên DataView AllowEdit Cho phép thao tác sửa đổi trên DataView AllowNew Cho phép thao tác thêm mới bằng AddNew Count Số mẩu tin trên DataView Item Trả về dòng dữ liệu trên bảng theo tham số truyền vào RowFilter Biểu thức lọc RowStateFilter Trạng thái dòng dữ liệu trên DataView + Added: dòng mới thêm nhưng chưa cập nhật +CurrentRows: tất cả các dòng không thay đổi, mới và đã thay đổi + Deleted: dòng đánh dấu hủy + ModifiedCurrent + ModifiedOriginal + None, OriginalRows,Unchanged Sort sắp xếp dữ liệu trên DataView Table Tên bảng Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp Bài thực hành số 03  SQL Server  Phân tích yêu cầu  Phân tích hướng dẫn http:// lhu.edu.vn 71 LHU 72 www.themegallery.com

Các file đính kèm theo tài liệu này:

  • pdfchuong03_dataprocessingwithado_net_1571_1994180.pdf
Tài liệu liên quan