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

Ltudql1 05 cac lop doi tuong trong ado

16 0 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

01/10/2010 Khoa CNTT-ĐH.KHTN MICROSOFT NET FRAMEWORK Lập Trình Ứng Dụng Quản Lý Chương 5: ADO.NET (tt) VB C++ C# J# … Common Language Specification Windows® Forms ASP.NET Web Forms Web Services ADO.NET and XML GV Trương Phước Lộc Base Class Library Common Language Runtime Operating System GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN THE MICROSOFT PLATFORM VAI TRÒ CỦA ADO.NET Windows Applications devices Operations infrastructure Khoa CNTT-ĐH.KHTN Application infrastructure Web Applications Information worker infrastructure ADO.NET DBMS DB XML Web Services GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN ADO.NET DATA PROVIDER GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang CÁC BƯỚC KHI TRUY XUẤT DỮ LIỆU Khoa CNTT-ĐH.KHTN ADO.NET Data Provider DBMS Data Source Connection Command Data Reader Data Adaptor Connection Data Adapter Dataset Web Form Win Form Specific file OleDbConnection Object DB Application Data Set Application Handles data transfer and provides data for dataset; uses SQL Actual data, can contain multiple tables Bound controls display data GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang 01/10/2010 Khoa CNTT-ĐH.KHTN CÁC BƯỚC KHI TRUY XUẤT DỮ LIỆU GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN MỘT KIẾN TRÚC THAM KHẢO Presentation Tier Windows Forms Dataset Web Forms Dataset GV Trương Phước Lộc Business Tier XML Data Tier Data Object (Class) Dataset XML XML XML Data Source Data Adapter MỘT KIẾN TRÚC THAM KHẢO ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN • Trong lớp Presentation Layer có thành phần User Interface Components User Interface Process Components • User Interface Components phần tử chịu trách nhiệm thu thập hiển thị thông tin cho người dùng cuối Trong VB.NET thành phần TextBox, Button, DataGrid… GV Trương Phước Lộc 11 ThS Nguyễn Tấn Trần Minh Khang MỘT KIẾN TRÚC THAM KHẢO GV Trương Phước Lộc MỘT KIẾN TRÚC THAM KHẢO Khoa CNTT-ĐH.KHTN ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN • Presentation Layer: làm nhiệm vụ giao tiếp với người dùng cuối để thu thập liệu hiển thị kết quả/dữ liệu thông qua thành phần giao diện người sử dụng Lớp sử dụng dịch vụ lớp Business Logic cung cấp • Trong NET ta dùng Windows Forms, ASP.NET hay Mobile Forms để thực lớp GV Trương Phước Lộc 10 MỘT KIẾN TRÚC THAM KHẢO ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN • User Interface Process Components: thành phần chịu trách nhiệm quản lý qui trình chuyển đổi UI Components • Ví dụ User Interface Process Components chịu trách nhiệm quản lý hình nhập liệu loạt thao tác định trước bước Wizard… GV Trương Phước Lộc 12 ThS Nguyễn Tấn Trần Minh Khang 01/10/2010 MỘT KIẾN TRÚC THAM KHẢO Khoa CNTT-ĐH.KHTN • Lưu ý: lớp Presentation Layer không nên sử dụng trực tiếp dịch vụ lớp Data Access mà nên sử dụng thông qua dịch vụ lớp Business Logic bạn sử dụng trực tiếp vậy, bạn bỏ qua ràng buộc, logic nghiệp vụ mà ứng dụng cần phải có GV Trương Phước Lộc 13 MỘT KIẾN TRÚC THAM KHẢO ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN • Trong lớp có thành phần Business Components, Business Entities Service Interface • Service Interface giao diện lập trình mà lớp cung cấp cho lớp Presentation sử dụng • Lớp Presentation cần biết dịch vụ thông qua giao diện mà không cần phải quan tâm đến bên lớp thực GV Trương Phước Lộc 15 MỘT KIẾN TRÚC THAM KHẢO ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN • Business Components thành phần thực dịch vụ mà Service Interface cung cấp • Business Components chịu trách nhiệm kiểm tra ràng buộc logic (constraints), qui tắc nghiệp vụ (business rules) • Business Components ngồi cịn sử dụng dịch vụ bên khác để thực yêu cầu ứng dụng GV Trương Phước Lộc 17 ThS Nguyễn Tấn Trần Minh Khang MỘT KIẾN TRÚC THAM KHẢO Khoa CNTT-ĐH.KHTN • Lớp Business Logic Layer (BLL) thực nghiệp vụ hệ thống, sử dụng dịch vụ lớp Data Access cung cấp, cung cấp dịch vụ cho lớp Presentation • Lớp BLL sử dụng dịch vụ nhà cung cấp thứ (3rd parties) để thực cơng việc (ví dụ sử dụng dịch vụ tóan trực tuyến VeriSign, Paypal) GV Trương Phước Lộc 14 MỘT KIẾN TRÚC THAM KHẢO ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN • Business Entities thực thể mô tả đối tượng thông tin mà hệ thống xử lý • Trong ứng dụng đối tượng chuyên mục (Category) tin(News) • Các business entities dùng để trao đổi thông tin lớp Presentation lớp Data Access GV Trương Phước Lộc 16 MỘT KIẾN TRÚC THAM KHẢO ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN • Trong ứng dụng lớp Business Components chứa thành phần CategoryService NewsService làm nhiệm vụ cung cấp dịch vụ quản lý chuyên mục xử lý tin (thêm, xóa, sửa, xem chi tiết, lấy danh sách…) GV Trương Phước Lộc 18 ThS Nguyễn Tấn Trần Minh Khang 01/10/2010 MỘT KIẾN TRÚC THAM KHẢO Khoa CNTT-ĐH.KHTN • Lớp Data Tier thực nghiệp vụ liên quan đến lưu trữ truy xuất liệu ứng dụng • Thơng thường Data Tier sử dụng dịch vụ hệ quản trị sở liệu SQL Server, Oracle,… để thực nhiệm vụ • Trong lớp Data Tier có thành phần Data Access Logic, Data Sources, Servive Agents GV Trương Phước Lộc 19 Khoa CNTT-ĐH.KHTN ADO.NET OBJECT MODEL DataSet DataTableCollection DataTable NET Data Provider Connection DataAdapter Transaction ThS Nguyễn Tấn Trần Minh Khang SelectCommand InsertCommand DataColumnCollection UpdateCommand ConstraintCollection DataReader DeleteCommand GV Trương Phước Lộc 20 Database Manages the connection to a database Connection Executes a query command on the database Command Exchanges data between the data set and the database DataRelationCollection Provides efficient access to a stream of read-only data XML Database DataReader 21 22 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN CONNECTION Fill DataSet Update Errors Collection • Vai trò Connection ADO.NET tạo kết nối ứng dụng “nguồn liệu” (Data Source) Parameters Data Source DeleteCo mmand Command Connection InsertCo mmand UpdateCo mmand DataAdapter SelectCo mmand DeleteCo mmand InsertCo mmand UpdateCo mmand SelectCo mmand GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN ADO.NET OBJECT MODEL DataAdapter ThS Nguyễn Tấn Trần Minh Khang ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN ADO.NET OBJECT MODEL DataAdapter GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN • Data Access Logic components (DALC) thành phần chịu trách nhiệm lưu trữ vào truy xuất liệu từ nguồn liệu (Data Sources) RDMBS, XML, File systems… • Trong NET Các DALC thường thực cách sử dụng thư viện ADO.NET để giao tiếp với hệ sở liệu DataRowCollection Parameters Command MỘT KIẾN TRÚC THAM KHẢO Fill DataSet Update Errors Collection Command Connection Parameters Data Source GV Trương Phước Lộc 23 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 24 ThS Nguyễn Tấn Trần Minh Khang 01/10/2010 Khoa CNTT-ĐH.KHTN CONNECTION CONNECTION • Vai trị Connection ADO.NET tạo kết nối ứng dụng “nguồn liệu” (Data Source) • Data Provider: Các Data Provider có sẵn ADO.NET là: ▫ System.Data.OleDb ▫ System.Data.SqlClient • Ứng với Data Provider có lớp Connection tương ứng ▫ System.Data.OleDb.OleDbConnection ▫ System.Data.SqlClient.SqlConnection GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN 25 ThS Nguyễn Tấn Trần Minh Khang • Chúng ta sử dụng System.Data.OleDb.OleDbConnection cho “nguồn liệu” (Data Source) • Ngồi SQL Server Provider, ADO.NET hỗ trợ số Data Provider khác: ▫ System.Data.OracleClient qua tập tin System.Data.OracleClient.dll cho liệu nguồn theo chuẩn công ty Oracle ▫ Microsoft.Data.Odbc qua tập tin Microsoft.Data.Odbc.dll cho ODBC ▫ Microsoft.Data.SqlXml qua tập tin Microsoft.Data.SqlXml.dll cho Xml SQL server GV Trương Phước Lộc 26 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN CONNECTION CONNECTION • Connection String: trước thực kết nối, ta cần khai báo thông tin cần thiết cho Connection thơng qua thuộc tính ConnectionString • Cách thức khai báo ConnectionString thay đổi tùy thuộc vào Data Provider GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN 27 ThS Nguyễn Tấn Trần Minh Khang • Tạo ConnectionString tạo đối tượng kết nối cho “nguồn liệu” Access 1.Imports System.Data.OleDb 2.Dim strConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0”&_ “;Data Source=“ & 3.Dim cnn As New OleDbConnection (strConnection) 4.… 5.cnn.Close() GV Trương Phước Lộc 28 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN CONNECTION CONNECTION • Tạo ConnectionString tạo đối tượng kết nối cho “nguồn liệu” Oracle 1.Imports System.Data.OleDb 2.Dim strConnection As String = "Provider=MSDAORA.1” &_ “; UserID” &_ &_ “;Password=“ &_ &_ “;Data Source=“ &_ 3.Dim cnn As New OleDbConnection (strConnection) 4.… 5.cnn.Close() GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN 29 ThS Nguyễn Tấn Trần Minh Khang • Tạo ConnectionString tạo đối tượng kết nối cho “nguồn liệu” SQL Server • Cách 01 1.Imports System.Data.SqlClient 2.Dim strConnection As String = &_ “Initial Catalog=“ &_ &_ “;User ID=“ &_ &_ “;Password =“ &_ 3.Dim cnn As New SqlConnection (strConnection) 4.… 5.cnn.Close() GV Trương Phước Lộc 30 “DataSource=” &_ ThS Nguyễn Tấn Trần Minh Khang 01/10/2010 Khoa CNTT-ĐH.KHTN CONNECTION CONNECTION • Tạo ConnectionString tạo đối tượng kết nối cho “nguồn liệu” SQL Server • Cách 02 1.Imports System.Data.SqlClient 2.Dim strConnection As String = “DataSource=” &_ &_ “Initial Catalog=“ &_ &_ “;Integrated Security = SSPI” 3.Dim cnn As New SqlConnection (strConnection) 4.… 5.cnn.Close() GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN 31 ThS Nguyễn Tấn Trần Minh Khang • Các thuộc tính Connection ▫ Database (thuộc tính đọc): Tương ứng với Initial Catalog (SQL) hay tên database muốn làm việc (OLEDB) ▫ DataSource (thuộc tính đọc): Tương ứng với DataSource (OLEDB SQL) ▫ Provider (thuộc tính đọc): Tương ứng với Provider GV Trương Phước Lộc 32 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN CONNECTION CONNECTION • Các thuộc tính Connection • Các phương thức Connection ▫ State: Thuộc tính State thể tình trạng kết nối Connection Thuộc tính nhận giá trị sau:       Broken: Kết nối với nguồn liệu bị ngắt Closed: Kết nối đóng Connecting: Đang kết nối với nguồn liệu Executing: Kết nối thực lệnh Fetching: Kết nối truy xuất liệu Open: Kết nối mở GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN 33 ThS Nguyễn Tấn Trần Minh Khang ▫ ▫ ▫ ▫ ▫ ▫ Phương thức Phương thức Phương thức Phương thức Phương thức Phương thức GV Trương Phước Lộc BeginTransaction: ChangeDatabase: Close: CreateCommand: Dispose: Open: 34 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN 8.1 TRANSACTION 8.1 TRANSACTION • Transaction: Giao tác trình cập nhật tạm thời sửa đổi nguồn liệu cập nhật thật phương thức Commit giao tác gọi phục hồi lại thực liệu qua phương thức Rollback • Transaction tạo cách gọi thực phương thức BeginTransaction • Tùy theo loại Connection tương ứng mà phương thức BeginTransaction trả OleDbTransaction hay SqlTransaction GV Trương Phước Lộc 35 Khoa CNTT-ĐH.KHTN ThS Nguyễn Tấn Trần Minh Khang • Tạo Transaction với OleDbConnection có cách khác • Cách 01 1.Dim as OleDbTransaction = .BeginTransaction() • Cách 02 1.Dim as OleDbTransaction = .BeginTransaction (IsolationLevel) • : định tính chất Transaction GV Trương Phước Lộc 36 ThS Nguyễn Tấn Trần Minh Khang 01/10/2010 Khoa CNTT-ĐH.KHTN 8.1 TRANSACTION 8.1 TRANSACTION • Tạo Transaction với SqlConnection có cách khác • Cách 01 (Tương tự OleDbConnection) 1.Dim as OleDbTransaction = .BeginTransaction() • Cách 02 (Tương tự OleDbConnection) 1.Dim as OleDbTransaction = .BeginTransaction (IsolationLevel) • : định tính chất Transaction GV Trương Phước Lộc 37 Khoa CNTT-ĐH.KHTN ThS Nguyễn Tấn Trần Minh Khang • Tạo Transaction với SqlConnection có cách khác • Cách 03 Dim as SqlTransaction = .BeginTransaction () • Cách 04 Dim as SqlTransaction = .BeginTransaction (,) GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang 38 Khoa CNTT-ĐH.KHTN 8.1 TRANSACTION 8.1 TRANSACTION ▫ IsolationLevel có giá trị sau: • Các thuộc tính Transaction ▫ Connection: Thuộc tính xác định Connection kết hợp với giao tác ▫ IsolationLevel: Thuộc tính cho biết giá trị IsolationLevel (mức độ cô lập)  Trong NET data provider sử dụng giá trị để thực giao tác  IsolationLevel có hiệu lực thay đổi giá trị thay đổi thời điểm Giá trị dùng thời gian thực giao tác Nếu việc thay đổi xảy giao tác diễn biến, giá trị có hiệu lực cho lệnh lại giao tác GV Trương Phước Lộc 39 Khoa CNTT-ĐH.KHTN ThS Nguyễn Tấn Trần Minh Khang       Chaos ReadCommitted ReadUnCommitted RepeatableRead Serializable Unspecified GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang 40 Khoa CNTT-ĐH.KHTN 8.1 TRANSACTION 8.1 TRANSACTION • Các phương thức Transaction ▫ Begin: Bắt đầu giao tác lồng ▫ Commit: Cập nhật giao tác xảy ▫ Rollback: Phục hồi thay đổi giao tác thực GV Trương Phước Lộc 41 Khoa CNTT-ĐH.KHTN ThS Nguyễn Tấn Trần Minh Khang • Sử dụng ToolBox OleDbConnection GV Trương Phước Lộc để 42 tạo đối tượng ThS Nguyễn Tấn Trần Minh Khang 01/10/2010 Khoa CNTT-ĐH.KHTN COMMAND COMMAND • Sau tạo kết nối với “nguồn liệu”, thao tác “nguồn liệu” kết nối thực thông qua Command DeleteCo mmand InsertCo mmand UpdateCo mmand SelectCo mmand DataAdapter Khoa CNTT-ĐH.KHTN Fill DataSet Update Errors Collection • Sau tạo kết nối với “nguồn liệu”, thao tác “nguồn liệu” kết nối thực thơng qua Command • Tùy theo loại đối tượng Connection, đối tượng Command thuộc tên miền sau: ▫ Sytem.Data.OleDb.OleDbCommand ▫ Sytem.Data.SqlClient.SqlCommand Command Connection Parameters Data Source GV Trương Phước Lộc 43 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 44 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN COMMAND COMMAND • Tạo đối tượng Command ta thực theo cách thức sau: ▫ Cách 1: • Tạo đối tượng Command ta thực theo cách thức sau: ▫ Cách 3: 1.Dim As New Command() 2..Connection = 3..CommandText= 1.Dim As New Command(,) ▫ Cách 4: 2.Dim As Command = .CreateCommand() 3..CommandText= ▫ Cách 2: 4.Dim As New Command() 5..Connection = GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN 45 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 46 Khoa CNTT-ĐH.KHTN COMMAND Khoa CNTT-ĐH.KHTN COMMAND • Các thuộc tính đối tượng Command ▫ CommandText (thuộc tính đọc ghi): Lệnh SQL tên stored procedure muốn thực nguồn liệu ▫ CommandType: Thuộc tính cho biết nội dung CommandText với giá trị sau: ▫ Text (mặc định): Một câu lệnh SQL ▫ Storeprocedure: Tên thủ tục nội ▫ TableDirect: Tên bảng Khi CommandType có giá trị này, CommandText tên bảng Khi command thực trả đủ dòng cột (OleDbCommand) GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang 47 ThS Nguyễn Tấn Trần Minh Khang • Các thuộc tính đối tượng Command ▫ Connection: Đối tượng Connection sử dụng cho command ▫ Parameters: Tập hợp tham số dùng command ▫ Transaction: Giao tác mà command thực GV Trương Phước Lộc 48 ThS Nguyễn Tấn Trần Minh Khang 01/10/2010 Khoa CNTT-ĐH.KHTN COMMAND Khoa CNTT-ĐH.KHTN COMMAND • Lớp đối tượng Parameter: Lệnh SQL CommandText sử dụng dấu hỏi (?) thay cho trị chưa xác định thực dùng đối tượng Parameter để truyền giá trị vào chỗ dấu hỏi • Tùy theo đối tượng Command, Parameter khai báo từ lớp sau: • Cú pháp khai báo đối tượng OledbParameter thuộc lớp 1.Dim As New OledbParameter 2.Dim As New OledbParameter() 3.Dim As New OledbParameter(,) ▫ OledbParameter ▫ SqlParameter GV Trương Phước Lộc 49 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 50 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN COMMAND Khoa CNTT-ĐH.KHTN COMMAND • Cú pháp khai báo đối tượng SqlParameter • Các thuộc tính Parameter ▫ Direction (thuộc tính đọc ghi): Giá trị cho biết loại tham số với giá trị sau: 1.Dim As New SqlParameter 2.Dim As New SqlParameter() 3.Dim As New SqlParameter(,)     Input InputOutput Output ReturnValue ▫ OledbType SqlType (thuộc tính đọc ghi): Kiểu liệu OleDb SqlDb tham số ▫ ParameterName (thuộc tính đọc ghi): Tên tham số ▫ Value (thuộc tính đọc ghi): Giá trị tham số GV Trương Phước Lộc 51 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 52 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN COMMAND Khoa CNTT-ĐH.KHTN COMMAND • Thực Command: Command có nhiều phương thức thực khác sau: ▫ ExecuteNonquery ▫ ExecuteReader ▫ ExecuteScalar • ExecuteNonquery: Để gọi thực câu truy vấn cập nhật INSERT, UPDATE, DELETE,…hay thủ tục nội không trả liệu khơng quan tâm đến kiểu liệu trả • Với lệnh INSERT, UPDATE, DELETE phương thức trả số dòng bị ảnh hưởng câu lệnh command, ngược lại phương thức trả giá trị -1 • Cú pháp 1..ExecuteNonQuery() GV Trương Phước Lộc 53 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 54 ThS Nguyễn Tấn Trần Minh Khang 01/10/2010 Khoa CNTT-ĐH.KHTN COMMAND COMMAND • ExecuteReader: Phương thức trả đối tượng DataReader để đọc liệu lần dịng với phương thức Read() • DataReader đọc liệu trực tiếp từ nguồn liệu nên phải trì kết nối liệu đọc xong • Cú pháp 1.….ExecuteReader() 2.….ExecuteReader () GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN 55 ThS Nguyễn Tấn Trần Minh Khang • Cú pháp 1.….ExecuteReader () • Các giá trị Behavior ▫ CloseConnection: Khi đối tượng DataReader đóng lại, Connection tự động đóng theo ▫ Default: Tương tự gọi phương thức ExcuteReader() khơng có tham số ▫ SchemaOnly: Truy vấn trả cấu trúc cột không làm ảnh hưởng đến thao tác khác GV Trương Phước Lộc 56 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN COMMAND COMMAND • ExecuteScalar: Phương thức ExecuteScalar thực lệnh Command trả giá trị cột dịng • Phương thức ExecuteScalar thường gọi muốn Command thực hàm tính tốn thống kê SUM, COUNT, AVG, MAX, MIN …trên “nguồn liệu” lúc thực thi • Cú pháp: ….ExecuteScalar() GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN 57 ThS Nguyễn Tấn Trần Minh Khang • DataReader: đối tượng truy cập “nguồn liệu” trực tiếp • DataReader sử dụng cursor phía Server suốt q trình đọc liệu • DataReader thuộc tên miền ▫ System.Data.OledbDataReader ▫ System.Data.SqlDataReader • Trong DataReader mở, thao tác khác “nguồn liệu” thực DataReader đóng lại phương thức Close GV Trương Phước Lộc 58 Khoa CNTT-ĐH.KHTN COMMAND Khoa CNTT-ĐH.KHTN COMMAND • Các thuộc tính DataReader ▫ FieldCount: Trả số cột dòng hành DataReader ▫ IsClosed: Cho biết DataReader đóng chưa ▫ Item: Trị cột truyền vào Tham số truyền tên cột số cột (chỉ số đánh số từ 0) GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang 59 ThS Nguyễn Tấn Trần Minh Khang • Các phương thức DataReader ▫ Close: Đóng DataReader ▫ GetFieldType: Trả kiểu liệu cột truyền vào ▫ GetName: Trả tên cột truyền vào ▫ GetOrdinal: Trả số thứ tự cột truyền vào ▫ GetSchema Table: Trả bảng chứa thông tin mô tả cột DataReader ▫ GetValue: Trả giá trị cột tuyền vào ▫ Read: Di chuyển đến dòng trả True dòng để di chuyển, ngược lại trả False GV Trương Phước Lộc 60 ThS Nguyễn Tấn Trần Minh Khang 10 01/10/2010 Khoa CNTT-ĐH.KHTN 10 DATA ADAPTER Fill DataSet Update Errors Collection Command Fill Connection Errors Collection Parameters Connection Parameters Data Source 61 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 62 Khoa CNTT-ĐH.KHTN 10 DATA ADAPTER ▫ SelectCommand: cho phép lấy thông tin từ “nguồn liệu” ▫ InsertCommand: cho phép thêm liệu vào bảng “nguồn liệu” ▫ UpdatedCommand: cho phép sửa đổi liệu bảng “nguồn liệu” ▫ DeleteCommand: cho phép hủy bỏ liệu bảng “nguồn liệu” 63 Khoa CNTT-ĐH.KHTN ThS Nguyễn Tấn Trần Minh Khang • Thơng thường ta cần khai báo nội dung lệnh cho SelectCommand • Các nội dung command cịn lại phát sinh nhờ đối tượng CommandBuilder dựa vào nội dung SelectCommand GV Trương Phước Lộc 64 Khoa CNTT-ĐH.KHTN 10 DATA ADAPTER ▫ Cách 1: New DataAdapter() ▫ Cách 2: New DataAdapter() Trong đó: ĐTSC tương ứng “Đối tượng SelectCommand” Đối tượng có sẵn với nội dung lệnh truy xuất 65 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN 10 DATA ADAPTER • Tạo DataAdapter: Tương ứng với đối tượng Command cần khai báo rõ DataAdapter sử dụng theo Data Provider nào: SqlDataAdapter or OledbDataAdapter • Cú pháp tạo DataAdapter: GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang 10 DATA ADAPTER • DataAdapter gồm đối tượng command: GV Trương Phước Lộc DataSet Update Command Data Source GV Trương Phước Lộc DataAdapter SelectCo mmand DeleteCo mmand InsertCo mmand UpdateCo mmand SelectCo mmand DataAdapter • Đối tượng DataAdapter cho phép lấy cấu trúc liệu bảng “nguồn liệu” DeleteCo mmand • DataAdapter dùng để lấy liệu từ “nguồn liệu” (DataSource) cho ứng dụng InsertCo mmand UpdateCo mmand 10 DATA ADAPTER Khoa CNTT-ĐH.KHTN ThS Nguyễn Tấn Trần Minh Khang • Cú pháp tạo DataAdapter: ▫ Cách 3: New DataAdapter(, ) ▫ Cách 4: New DataAdapter(, ) • : Câu lệnh SQL, tên storedprocedure để thực truy xuất từ nguồn liệu • : Đối tượng Connection DataAdapter thao tác với nguồn liệu • : Chuỗi ConnectionString để tạo đối tượng Connection GV Trương Phước Lộc 66 ThS Nguyễn Tấn Trần Minh Khang 11 01/10/2010 Khoa CNTT-ĐH.KHTN 10 DATA ADAPTER Khoa CNTT-ĐH.KHTN 10 DATA ADAPTER • DataAdapter thao tác với nguồn liệu qua đối tượng Connection kết nối • Đặt biệt Connection chưa mở, DataAdapter tự động mở kết nối cần tự động đóng lại • Ngược lại Connection mở sẵn, phải tự đóng kết nối, DataAdapter khơng thực tự động • Các thuộc tính DataAdapter ▫ Thuộc tính ContinueUpdatedOnError: Chỉ định cách thức xử lý DataAdapter cập nhật liệu nguồn liệu bị lỗi Nếu thuộc tính nhận giá trị True DataAdapter bỏ qua dòng bị lỗi tiếp tục cập nhật dòng Lỗi phát sinh đưa vào thuộc tính RowError dịng bị lỗi Ngược lại thuộc tính nhận giá trị False phát sinh Exception dòng bị lỗi GV Trương Phước Lộc 67 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 68 Khoa CNTT-ĐH.KHTN 10 DATA ADAPTER ▫ Thuộc tính DeleteCommand: Đối tượng Command chứa nội dung lệnh hủy mẩu tin nguồn liệu ▫ Thuộc tính InsertCommand: Đối tượng Command chứa nội dung lệnh chèn mẩu tin vào nguồn liệu ▫ Thuộc tính SelectCommand: Đối tượng Command chứa nội dung lệnh truy xuất mẩu tin từ nguồn liệu ▫ Thuộc tính UpdateCommand: Đối tượng Command chứa nội dung lệnh cập nhật mẩu tin vào nguồn liệu 69 Khoa CNTT-ĐH.KHTN 10 DATA ADAPTER • Các thuộc tính DataAdapter GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang • Các thuộc tính DataAdapter ▫ Thuộc tính TableMappings: Tập hợp ánh xạ tên bảng DataAdapter đỗ liệu hay cấu trúc vào đối tượng chứa GV Trương Phước Lộc 70 Khoa CNTT-ĐH.KHTN 10 DATA ADAPTER ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN 10 DATA ADAPTER • Các phương thức DataAdaper ▫ ▫ ▫ ▫ ThS Nguyễn Tấn Trần Minh Khang • Tạo đối tượng DataAdapter điều khiển Lấy liệu từ nguồn Lấy cấu trúc liệu từ nguồn Tạo lệnh cập nhật cho DataAdapter Cập nhật liệu nguồn GV Trương Phước Lộc 71 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 72 ThS Nguyễn Tấn Trần Minh Khang 12 01/10/2010 Khoa CNTT-ĐH.KHTN Khoa CNTT-ĐH.KHTN 10 DATA ADAPTER Client Server DataSet Fill Data DataAdapter Database Data Update DataTable InsertCommand UpdateCommand DeleteCommand GV Trương Phước Lộc 73 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 74 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN 11 DATASET Khoa CNTT-ĐH.KHTN 11 DATASET Dataset Dataset DataRow DataColumnCollection ConstraintCollection DataRow DataSet Architecture 75 DataColumn DataTable DataRelationsCollection GV Trương Phước Lộc DataColumn DataTable DataTableCollection DataTable DataRowCollection ThS Nguyễn Tấn Trần Minh Khang DataSet Architecture GV Trương Phước Lộc 76 Khoa CNTT-ĐH.KHTN 11 DATASET Khoa CNTT-ĐH.KHTN 11 DATASET • DataSet mơ hình CSDL quan hệ thu nhỏ đáp ứng nhu cầu ứng dụng DataSet DataRelationCollection ExtendedPropeties DataTableCollection DataTable ExtendedProperties PrimaryKey 77 DeleteCo mmand InsertCo mmand UpdateCo mmand DataRowCollection DataRow SelectCo mmand DataAdapter DataView ChildRelations ParentRelations Constraints GV Trương Phước Lộc ThS Nguyễn Tấn Trần Minh Khang Fill DataSet Update Errors Collection Command DataColumnCollection DataColumn ExtendedProperties ThS Nguyễn Tấn Trần Minh Khang Connection Parameters Data Source GV Trương Phước Lộc 78 ThS Nguyễn Tấn Trần Minh Khang 13 01/10/2010 Khoa CNTT-ĐH.KHTN 11 DATASET Khoa CNTT-ĐH.KHTN 11 DATASET • DataSet mơ hình CSDL quan hệ thu nhỏ đáp ứng nhu cầu ứng dụng • DataSet chứa bảng (DataTable), quan hệ (DataRelation) ràng buộc (Constraint) • DataSet thuộc tên miền sau: System.Data.DataSet Dataset DataTableCollection DataTable DataRowCollection DataColumnCollection ConstraintCollection • Ta khai báo DataSet cách thức sau: • Cách 1: New System.Data.DataSet() • Cách 2: New System.Data.DataSet() : tên DataSet • Cách 3: Tạo DataSet điều khiển nhóm Data ToolBox DataRelationsCollection GV Trương Phước Lộc 79 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 80 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN 11 DATASET 11 DATASET Thuộc tính DataSetName HasErrors Mô tả Tên DataSet (đọc ghi) Giá trị cho biết có lỗi xảy bảng DataSet: True/False (chỉ đọc) Relations Tập hợp quan hệ (DataRelation) nhiều DataSet (chỉ đọc) Tables Tập hợp bảng (DataTable) DataSet (chỉ đọc)  Các thuộc tính DataSet GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN 81 ThS Nguyễn Tấn Trần Minh Khang • Các phương thức DataSet ▫ ▫ ▫ ▫ ▫ ▫ ▫ Thêm bảng vào DataSet Thêm nhiều bảng vào DataSet Xóa bảng khỏi DataSet Kiểm tra bảng có thuộc DataSet Lấy số bảng Lấy số lượng bảng chứa DataSet Lấy bảng chứa DataSet GV Trương Phước Lộc 82 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN 11 DATASET 11 DATASET • Các phương thức DataSet ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ … Kiểm tra liệu DataSet có thay đổi Lấy dịng liệu thay đổi DataSet Cập nhật thay đổi DataSet Hủy bỏ thay đổi DataSet Xóa bỏ liệu DataSet Tạo DataSet Trộn liệu bên ngồi vào DataSet Xóa bỏ DataSet GV Trương Phước Lộc Khoa CNTT-ĐH.KHTN 83 ThS Nguyễn Tấn Trần Minh Khang • Các phương thức DataSet ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ … Tạo quan hệ hai bảng DataSet Thêm nhiều quan hệ vào DataSet Xóa quan hệ khỏi DataSet Kiểm tra quan hệ có thuộc DataSet Lấy số quan hệ Lấy số lượng quan hệ DataSet Lấy quan hệ DataSet GV Trương Phước Lộc 84 ThS Nguyễn Tấn Trần Minh Khang 14 01/10/2010 Khoa CNTT-ĐH.KHTN 12 TYPED DATASET 12 TYPED DATASET • Typed DataSet DataSet định sẵn cấu trúc bảng, quan hệ, ràng buộc chưa có liệu • Chúng ta tham chiếu đến bảng, cột tên chúng thay phải thơng qua tập hợp • Do có cấu trúc, nên kiểu cột kiểm tra biên dịch lúc thực thi DataSet thường GV Trương Phước Lộc 85 Khoa CNTT-ĐH.KHTN ThS Nguyễn Tấn Trần Minh Khang • Cách tạo Typed DataSet ▫ Chọn Project\Add New Item\DataSet ▫ Typed DataSet lưu thành tập tin có XSD ▫ Nhấn phải cửa sổ tiếp theo, chọn mục New Element ▫ Lần lượt đặt tên bảng, tên cột, kiểu liệu ▫ Tiếp tục cho bảng khác GV Trương Phước Lộc 86 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN 12 TYPED DATASET 12 TYPED DATASET • Trong trường hợp ta tạo Typed DataSet cấu trúc bảng giống cấu trúc có sẵn CSDL, kéo cấu trúc bảng CSDL vào sơ đồ GV Trương Phước Lộc 87 Khoa CNTT-ĐH.KHTN ThS Nguyễn Tấn Trần Minh Khang • Tạo quan hệ bảng Typed DataSet thực cách sau: ▫ Cách 1: Chọn field bảng cha muốn thiết lập quan hệ thả treeb bảng ▫ Cách 2: Nhấn chuột phải bảng cha vào chọn mục Add\New Relation ▫ Cách 3: Kéo điều khiển Relation nhóm XML Schema Toolbox thả bảng muốn tạo quan hệ GV Trương Phước Lộc 88 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN 12 TYPED DATASET • Lấy liệu vào Typed DataSet: Khi chương trình thực thi, liệu không tự động lấy phải sử dụng DataAdapter để lấy liệu nguồn vào DataSet GV Trương Phước Lộc 89 ThS Nguyễn Tấn Trần Minh Khang Khoa CNTT-ĐH.KHTN 12 TYPED DATASET • Hiển thị liệu theo quan hệ: Nếu bảng có quan hệ, di chuyển bảng cha dẫn đến việc di chuyển bảng đến dòng tương ứng với mẫu tin bảng cha thông qua tên quan hệ GV Trương Phước Lộc 90 ThS Nguyễn Tấn Trần Minh Khang 15 01/10/2010 Khoa CNTT-ĐH.KHTN 12 TYPED DATASET Khoa CNTT-ĐH.KHTN Câu hỏi • Chúng ta sử dụng Typed DataSet thông qua việc khai báo biến từ lớp DataSet tạo sau: Dim ds New • Các bảng cột Typed DataSet liệt kê danh sách thành phần đối tượng • Ngồi thuộc tính, phương thức, kiện kế thừa từ DataSet, đối tượng cịn có thuộc tính bảng DataSet, cột bảng với tên kiểu cụ thể GV Trương Phước Lộc 91 ThS Nguyễn Tấn Trần Minh Khang GV Trương Phước Lộc 92 ThS Nguyễn Tấn Trần Minh Khang 16

Ngày đăng: 09/04/2023, 06:28

Xem thêm:

w