Có một đôi điều bạn cần phải chú ý về phát biểu CREATE TRIGGER này. Mệnh đề AFTER UPDATE chỉ rõ trigơ sẽ khởi chạy sau khi một phát biểu UPDATE được thực hiện. Bạn có thể truy xuất những giá trị cột cũ trước khi sự Cập nhật được áp dụng từ bảng đã bị xóa, và bạn có thể truy xuất những giá trị cột mới sau khi sự Cập nhật được áp dụng từ bảng được chèn vào.
Có đơi điều bạn cần phải ý phát biểu CREATE TRIGGER Mệnh đề AFTER UPDATE rõ trigơ khởi chạy sau phát biểu UPDATE thực Bạn truy xuất giá trị cột cũ trước Cập nhật áp dụng từ bảng bị xóa, bạn truy xuất giá trị cột sau Cập nhật áp dụng từ bảng chèn vào Để thử UpdateUnitPriceProductTrigger, Bạn cần giảm bớt giá trị cột UnitPrice cho hàng bảng sản phẩm sử dụng phát biểu UPDATE Chẳng hạn, phát biểu UPDATE sau nhân UnitPrice với 0.70 cho hàng với ProductID 80 (điều giảm bớt UnitPrice hàng 30 phần trăm) UPDATE Products SET UnitPrice = UnitPrice * 0.70 WHERE ProductID = 80 Hàng thêm vào bảng ProductAudit kết việc thực phát biểu UPDATE trình bày Bảng 4.9 Hàng thêm vào UpdateUnitPriceProductTrigger Bảng 4.9: Hàng thêm vào bảng ProductAudit UpdateUnitPriceProductTrigger ID ACTION (hành động) PERFORMEDBY TOOKPLACE (thực bởi) (thời gian thực hiện) Đơn giá ProductID #80 dbo giảm 30% 2002-07-18 17:26:37.590 Tạo kiểm tra DeleteProductTrigger Trigơ DeleteProductTrigger khởi chạy sau phát biểu DELETE thực bảng sản phẩm Trigơ thêm hàng vào bảng ProductAudit để kiểm định thay đổi Danh sách 4.9 trình bày script DeleteProductTrigger.sql Danh sách 4.9: DELETEPRODUCTTRIGGER.SQL /* DeleteProductTrigger.sql creates a trigger that fires after a DELETE statement is performed on the Products table */ CREATE TRIGGER DeleteProductTrigger ON Products AFTER DELETE AS don't return the number of rows affected SET NOCOUNT ON declare an int variable to store the ProductID DECLARE @NewProductID int get the ProductID of the row that was removed from the Products table SELECT @NewProductID = ProductID FROM deleted add a row to the ProductAudit table INSERT INTO ProductAudit ( Action ) VALUES ( 'Product #' + CONVERT(nvarchar, @NewProductID) + ' was removed' ) Để thử DeleteProductTrigger, Bạn cần loại bỏ hàng từ bảng sản phẩm sử dụng phát biểu DELETE Ví dụ, Phát biểu DELETE sau loại bỏ hàng với ProductID 80 DELETE FROM Products WHERE ProductID = 80 Hàng thêm vào bảng ProductAudit kết việc thực phát biểu DELETE Bảng 4.10 Hàng thêm vào DeleteProductTrigger Bảng 4.10: Hàng thêm vào bảng ProductAudit DeleteProductTrigger ID ACTION (hành động) PERFORMEDBY (thực bởi) TOOKPLACE (ngày thực hiện) Sản phẩm #80 bị xóa dbo 2002-07-18 17:35:53.510 Tóm lược Trong chương này, bạn học lập trình với Transact- SQL T- SQL cho phép bạn viết chương trình chứa câu lệnh SQL, với cấu trúc lập trình tiêu chuẩn biến, lơgic có điều kiện, vịng lặp, thủ tục, hàm SQL Server cung cấp số hàm bạn sử dụng để lấy giá trị từ sở liệu Chẳng hạn, bạn sử dụng hàm COUNT() để lấy số lượng hàng bảng Bạn thấy cách sử dụng hàm sau : tổng thể, toán học, chuỗi, ngày tháng thời gian, hệ thống Bạn tạo hàm người dùng định nghĩa riêng SQL Server Chẳng hạn, bạn muốn tạo hàm riêng để tính tốn giá chiết khấu dựa giá gốc hệ số để nhân với giá gốc SQL Server cho phép bạn lưu giữ thủ tục sở liệu Những thủ tục lưu trữ khác với hàm người dùng định nghĩa thủ tục trả lại mảng rộng lớn kiểu liệu Bạn điển hình tạo thủ tục lưu trữ cần thực tác vụ mà sử dụng cách mạnh mẽ sở liệu, hay Bạn muốn tập trung mã sở liệu mà người dùng gọi thay người dùng phải viết chương trình riêng để thực tác vụ Trong chương kế tiếp, bạn học lớp ADO.NET @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Chương 5: Tổng quan lớp ADO.NET Tổng quan ADO.NET cho phép bạn tương tác trực tiếp với sở liệu sử dụng đối tượng lớp managed provider (nhà cung cấp có quản lý) Những đối tượng cho phép bạn kế nối tới sở liệu thực thi câu lệnh SQL lúc kết nối trực tiếp tới sở liệu Chương trình ví dụ bạn thấy Chương cách để kết nối trực tiếp tới sở liệu đọc hàng từ bảng hướng tới ADO.NET cho phép bạn làm việc tình trạng khơng kết nối Khi thực điều này, bạn lưu trữ thông tin từ sở liệu cách cục nhớ máy tính chương trình bạn chạy Bạn cất giữ thông tin sử dụng đối tượng lớp Dataset Một bạn có thơng tin nhớ, bạn đọc thao tác với thông tin Chẳng hạn, bạn có hiển thị cột cho hàng, thêm hàng mới, sửa đổi hàng, xóa hàng Một cách định kỳ, bạn kết nối lại tới sở liệu để đồng hóa (hay cập nhật) thay đổi mà bạn làm cách cục với sở liệu Khiểu ngắt kết nối cho phép bạn viết ứng dụng chạy Internet, cho thiết bị không ln kết nối tới PDAs sở liệu- ví dụ Palm Pocket PC Chương cung cấp mô tả lớp ADO.NET , chương trình C# đầy đủ - kết nối tới sở liệu, lưu giữ hàng vào vùng nhớ cục bộ, ngắt kết nối khỏi sở liệu, đọc nội dung hàng cục tình trạng ngắt kết nối với sở liệu Khả lưu giữ cục hàng truy xuất từ sở liệu số sức mạnh ADO.NET Chương trình ví dụ minh họa ý tưởng việc sử dụng ADO.NET theo kiểu ngắt kết nối để đọc hàng từ sở liệu lư trữ chúng cách cục nhớ Trong chương sau , bạn thấy cách để sửa đổi liệu cục sau đồng hóa thay đổi với sở liệu Chương đặt tảng cho Phần II, "Lập trình sở liệu với ADO.NET, " Bạn thấy chi tiết lớp khác ADO.NET phần II Đặc trưng chương này: ■ Nhà cung cấp quản lý (Managed Provider) lớp Tập liệu chung (Generic Data Set) ■ Thực phát biểu SELECT SQL cất giữ hàng cục Nhà cung cấp quản lý lớp tập liệu chung Để cung cấp truy cập sở liệu có kết nối lẫn khơng kết nối, ADO.NET định nghĩa hai tập hợp lớp: Managed Provider (nhà cung cấp quản lý) generic data (dữ liệu chung) Bạn sử dụng đối tượng lớp managed provider để trực tiếp kết nối tới sở liệu để đồng hóa liệu cục cất giữ bạn với sở liệu Bạn sử dụng lớp managed provider để đọc hàng từ sở liệu hướng tới Bạn sử dụng tập hợp khác lớp managed provider tùy thuộc vào sở liệu bạn sử dụng Bạn sử dụng đối tượng lớp generic data (dữ liệu chung) để cất giữ cục thông tin truy xuất từ sở liệu Bản lưu trữ nhớ máy tính nơi chương trình C# chạy Lớp liệu chung lớp System.Data.DataSet Những lớp liệu chung, tên gợi ý chúng, khơng có đặc biệt so với sở liệu nào, bạn luôn sử dụng lớp sở liệu bạn sử dụng Những lớp liệu chung đại diện cho thông tin truy xuất từ sở liệu XML Những lớp Managed Provider (Nhà cung cấp quản lý) Những đối tượng managed provider (nhà cung cấp quản lý) cho phép bạn trực tiếp truy cập sở liệu, bạn giới thiệu lớp cho phép bạn tạo đối tượng mục Bạn sử dụng đối tượng managed provider để kế nối tới sở liệu , đọc viết thông tin xuôi ngược tới sở liệu Hình 5.1 minh họa số đối tượng managed provider (nhà cung cấp quản lý) chúng liên quan lẫn Hình 5.1: Một số đối tượng nhà cung cấp quản lý Hiện thời có ba tập hợp lớp managed provider , tập hợp thiết kế để làm việc với tiêu chuẩn sở liệu khác nhau: Những lớp SQL Server Managed Provider (bộ cung cấp có quản lý SQL Server) : Bạn sử dụng lớp SQL Server managed provider để kết nối tới sở liệu SQL Server Những lớp OLE DB Managed Provider : Bạn sử dụng lớp DB OLE (Object Linking and Embedding for Databases) managed provider để kết nối với sở liệu hỗ trợ OLE DB, Access Oracle Những lớp ODBC Managed Provider : Bạn sử dụng lớp ODBC (Open Database Connectivity) managed provider để nối tới sở liệu hỗ trợ ODBC Tất sở liệu hỗ trợ ODBC, ODBC điển hình chậm hai tập hợp lớp trước làm việc với NET Bạn cần phải sử dụng lớp ODBC managed provider khơng cịn lớp OLE DB managed provider thay khác Ba tập hợp lớp thực thi chức Ghi chú: Bất mà bạn thấy "Sql" khởi đầu tên lớp managed provider, bạn biết lớp sử dụng với sở liệu SQL Server Chẳng hạn, SqlConnection cho phép bạn kết nối tới sở liệu SQL Server Tương tự, "OleDb" dành cho sở liệu hỗ trợ OLE DB Chẳng hạn, OleDbConnection cho phép bạn kết nối tới sở liệu sử dụng OLE DB Cuối cùng, "Odbc" dành cho sở liệu hỗ trợ ODBC Chẳng hạn, OdbcConnection cho phép bạn kết nối tới sở liệu sử dụng ODBC Tôi tham chiếu tới tất lớp lớp kết nối (Connection) Bạn thấy số lớp managed provider khác mục sau Những lớp kết nối (Connection) Có ba lớp kết nối SqlConnection, OleDbConnection, OdbcConnection Bạn sử dụng đối tượng lớp SqlConnection để kết nối tới sở liệu Máy chủ phục vụ SQL Bạn sử dụng đối tượng lớp OleDbConnection để kết nối tới sở liệu hỗ trợ OLE DB, uy nhTrập hay Lời tiên tri.Access hay Oracle bạn sử dụng đối tượng lớp OdbcConnection để kết nối tới sở liệu hỗ trợ ODBC Cuối cùng, tất truyền thông với sở liệu thực thông qua đối tượng kết nối Những lớp Command Có ba lớp Command : SqlCommand, OleDbCommand, OdbcCommand Bạn sử dụng đối tượng lệnh (Command) để chạy câu lệnh SQL, phát biểu SELECT, INSERT, UPDATE, hay DELETE Bạn sử dụng đối tượng Command để gọi thủ tục lưu trữ hay truy xuất hàng từ bảng định Bạn chạy lệnh cất giữ đối tượng Command sử dụng đối tượng Connection Những lớp Tham số Có ba lớp Tham số: SqlParameter, OleDbParameter, OdbcParameter Bạn sử dụng đối tượng Parameter để gởi tham số tới đối tượng Command Bạn sử dụng Parameter để gởi giá trị tới câu lệnh SQL hay phương thức gọi thủ tục lưu trữ Bạn lưu giữ nhiều đối tượng tham số (Parameter) đối tượng Command thông qua đối tượng ParameterCollection (tập hợp tham số) Những lớp ParameterCollection (tập hợp tham số) Có ba lớp ParameterCollection: SqlParameterCollection, OleDbParameterCollection, Và OdbcParameterCollection Bạn sử dụng đối tượng ParameterCollection để cất giữ nhiều đối tượng tham số cho đối tượng Command Những lớp DataReader Có ba lớp DataReader: SqlDataReader, OleDbDataReader, OdbcDataReader Bạn sử dụng đối tượng DataReader để đọc hàng truy xuất từ sở liệu sử dụng đối tượng Command Những đối tượng DataReader dùng để đọc hàng theo hướng tới Những đối tượng DataReader đóng vai giải pháp cho đối tượng Dataset Bạn sử dụng DataReader để sửa đổi hàng sở liệu Mẹo nhỏ: Đọc hàng sử dụng đối tượng DataReader điển hình nhanh chóng đọc từ Dataset Những lớp DataAdapter Có ba lớp DataAdapter: SqlDataAdapter, OleDbDataAdapter, OdbcDataAdapter Bạn sử dụng đối tượng DataAdapter để dời chuyển hàng đối tượng Dataset sở liệu Bạn sử dụng đối tượng DataAdapter để đồng hóa (cập nhật) hàng lưu giữ cục bạn tới sở liệu Sự đồng hóa thực thông qua đối tượng Connection Chẳng hạn, bạn đọc hàng từ sở liệu vào Dataset thông qua DataAdapter, sửa đổi hàng Dataset bạn, đẩy thay đổi tới sở liệu thơng qua đối tượng Connection Những lớp CommandBuilder Có ba lớp CommandBuilder: SqlCommandBuilder, OleDbCommandBuilder, OdbcCommandBuilder Bạn sử dụng đối tượng CommandBuilder để tự động phát sinh lệnh (Commands) INSERT, UPDATE, and DELETE bảng đơn, đồng hóa thay đổi bạn thực với đối tượng Dataset tới sở liệu Sự đồng hóa thực thơng qua đối tượng DataAdapter Những lớp Giao dịch (Transaction) Có ba lớp Giao dịch: SqlTransaction, OleDbTransaction, OdbcTransaction Bạn sử dụng đối tượng Transaction để đại diện cho Giao dịch sở liệu Một giao dịch sở liệu nhóm phát biểu mà sửa đổi hàng sở liệu Những phát biểu coi đơn vị tác vụ lơgíc Chẳng hạn, trường hợp giao dịch cơng việc ngân hàng, bạn muốn rút tiền từ tài khoản chuyển tiền vào tài khoản khác Rồi bạn giao phó hai thay đổi đơn vị, hay sảy vấn đề, hồi nguyên hai thay đổi Không gian tên cho lớp Nhà cung cấp quản lý (Managed Provider ) Những lớp managed provider cho SQL Server (SqlConnection vân vân) khai báo không gian tên System Data.SqlClient Những lớp cho sở liệu tương thích OLE DB (SqlDbConnection vân vân) khai báo không gian tên System.Data.OleDb Những lớp cho sở liệu tương thích ODBC (OdbcConnection vân vân) khai báo khong gian tên System.Data.Odbc Ghi chú: Vào thời gian viết mã, bạn phải tải lớp ODBC managed provider từ trang web Microsoft http: // msdn.microsoft.com /Download việc tải riêng biệt từ NET SDK Tìm kiếm " ODBC.NET Data Provider" mục lục MSDN Trong mục sau đây, bạn học lớp liệu chung Những lớp Dữ liệu Chung Như bạn học mục trước đây, bạn sử dụng đối tượng managed data provider (bộ cung cấp liệu quản lý) để kết nối tới sở liệu thông qua đối tượng Connection, phát hành câu lệnh SQL thông qua đối tượng Command, đọc hàng truy xuất sử dụng đối tượng DataReader; nhiên, bạn đọc hàng hướng tới bạn phải kết nối tới sở liệu Những đối tượng liệu chung (generic data) cho phép bạn lưu giữ cục thông tin cất giữ sở liệu Điều cho phép bạn làm việc với thông tin ngắt kết nối lới sở liệu Bạn đọc hàng trật tự nào, bạn tìm kiếm, phân loại, lọc hàng cách linh hoạt Bạn chí sửa đổi hàng sau đồng hóa thay đổi tới sở liệu Hình 5.2 minh họa số đối tượng tập liệu chung chúng liên hệ lẫn Cầu nối cung cấp quản lý (managed provider) đối tượng tập liệu chung (generic data set objects) DataAdapter, bạn thường dùng để đồng hóa thay đổi Dataset bạn sở liệu Những đối tượng tập liệu chung Hình 5.2: Một số đối tượng tập liệu chung Những mục sau phác thảo số lớp liệu chung Lớp Dataset Bạn sử dụng đối tượng lớp Dataset để đại diện cho cục thông tin cất giữ sở liệu Bạn thực thay đổi tới mà cục Datset bạn sau sau đồng hóa thay đổi với sở liệu thơng qua đối tượng DataAdapter cung cấp quản lý Một đối tượng Dataset đại diện cho cấu trúc sở liệu bảng, hàng cột Bạn chí thêm ràng buộc vào bảng cục cất giữ bạn để giám sát việc thi hành ràng buộc khóa khóa ngoại Bạn sử dụng đối tượng Dataset để đại diện cho liệu XML Trong thực tế, tất thông tin cất giữ Dataset đại diện cho sử dụng XML, Bao gồm thông tin truy xuất từ sở liệu Lớp DataTable Bạn sử dụng đối tượng lớp DataTable để đại diện cho bảng Bạn cất giữ nhiều đối tượng DataTable Dataset thông qua đối tượng DataTableCollection Một đối tượng Dataset có thuộc tính tên Tables, mà bạn thường sử dụng để truy cập DataTableCollection chứa đối tượng DataTable cất giữ Dataset Lớp DataRow Bạn sử dụng đối tượng lớp DataRow để đại diện cho hàng Bạn cất giữ nhiều đối tượng DataRow DataTable thông qua đối tượng DataRowCollection Một đối tượng DataTable có thuộc tính tên Rows , bạn thường sử dụng để truy cập DataRowCollection chứa đối tượng DataRow cất giữ DataTable Lớp DataColumn Bạn sử dụng đối tượng lớp DataColumn để đại diện cho cột Bạn lưu giữ nhiều đối tượng DataColumn DataTable thông qua đối tượng DataColumnCollection Một đối tượng DataTable có thuộc tính tên Columns, bạn thường sử dụng để truy cập DataColumnCollection chứa đối tượng DataColumn cất giữ DataTable Lớp Ràng buộc (Constraint Class) Bạn sử dụng đối tượng lớp Constraint (Ràng buộc) để đại diện cho ràng buộc sở liệu ,nó kết buộc nhiều đối tượng DataColumn DataTable Bạn cất giữ nhiều đối tượng Constraint DataTable thông qua đối tượng ConstraintCollection Một đối tượng DataTable có thuộc tính tên Constraints, bạn thường sử dụng để truy cập ConstraintCollection chứa đối tượng Constraints cất giữ DataTable Lớp DataView Bạn sử dụng đối tượng lớp DataView để xem hàng định đối tượng DataTable sử dụng lọc (filter), rõ tiêu chuẩn để hạn chế hàng Lớp DataRelation Bạn sử dụng đối tượng lớp DataRelation để đại diện cho mối quan hệ hai đối tượng DataTable Bạn sử dụng đối tượng DataRelation để mơ hình hóa mối quan hệ cha hai bảng sở liệu Bạn lưu giữ nhiều đối tượng DataRelation Dataset thông qua đối tượng DataRelationCollection Một đối tượng Dataset có thuộc tính tên Relations, bạn thường sử dụng để truy cập DataRelationCollection chứa đối tượng DataRelation cất giữ Dataset Lớp UniqueConstraint Bạn sử dụng đối tượng lớp UniqueConstraint (ràng buộc khóa chính) để đại diện cho ràng buộc sở liệu, bắt buộc giá trị - cất giữ đối tượng DataColumn phải Lớp UniqueConstraint bắt nguồn từ lớp Constraint Bạn lưu giữ nhiều đối tượng UniqueConstraint DataTable thông qua đối tượng ConstraintCollection Lớp ForeignKeyConstraint (ràng buộc khóa ngoại) Bạn sử dụng đối tượng lớp ForeignKeyConstraint để rõ hành động thực giá trị cột bảng cha cập nhật hay bị xóa Lớp ForeignKeyConstraint bắt nguồn từ lớp Constraint Bạn có hai - hàng bị xóa (hoạt động liên tầng), gán cột tới null, hay gán cột tới giá trị mặc định Bạn cất giữ nhiều đối tượng ForeignKeyConstraint DataTable thông qua đối tượng ConstraintCollection Không gian tên cho lớp Dữ liệu chung Những lớp Dataset, DataTable, DataRow, DataColumn, DataRelation, Constraint (Sự Ràng buộc), DataView khai báo Hệ thống Dữ liệu namespace Namespace chứa đựng lớp khác mà bạn sử dụng chương trình (của) bạn Bạn nhìn nhiều tập hợp (của) lớp khai báo không gian tên (namespace) System.Data sử dụng tài liệu NET Chương giải thích cách bạn truy cập tài liệu Trong mục bạn thấy ví dụ đơn giản minh họa cách phát hành phát biểu SQL để truy xuất hàng từ bảng khách hàng, cất giữ hàng trả đối tượng Dataset Chương trình cho bạn hiểu biết việc sử dụng số lớp cung cấp quản lý lớp liệu chung đả phác thảo trước phần II, Bạn thấy chi tiết lớp khác sử dụng ví dụ Thực phát biểu SQL SEL:ECT lưu giữ hàng cục Trong ví dụ đặc trưng mục này, bạn xem xét cách kết nối tới sở liệu Northwind máy chủ phục vụ SQL thực phát biểu SELECT SQL để truy xuất cột CustomerID, CompanyName, ContactName, Address cho 10 hàng từ bảng khách hàng Những hàng lưu giữ đối tượng Dataset Ghi nhớ: Vì sử dụng sở liệu máy chủ phục vụ SQL, Tôi sử dụng lớp SQL Server managed provider ví dụ Phác thảo Thủ tục Bạn sử dụng bước sau để truy xuất hàng vào đối tượng Dataset : Cơng thức hóa chuỗi chứa chi tiết kết nối sở liệu Tạo đối tượng SqlConnection để kết nối tới sở liệu, gởi connection string (chuỗi kết nối) tới khởi dựng Cơng thức hóa chuỗi chứa phát biểu SELECT để truy xuất cột cho hàng từ bảng khách hàng Tạo đối tượng SqlCommand để giữ phát biểu SELECT Gán thuộc tính CommandText SqlCommand tới chuỗi SELECT Tạo đối tượng SqlDataAdapter Gán thuộc tính SelectCommand đối tượng SqlAdapter tới đối tượng SqlCommand Tạo đối tượng Dataset để lưu giữ kết phát biểu SELECT Mở kết nối sở liệu sử dụng phương thức OPEN() đối tượng SqlConnection 10 Phương thức Fill() đối tượng SqlDataAdapter truy xuất hàng từ bảng, lưu giữ hàng cục DataTable đối tượng Dataset 11 Đóng kết nối sở liệu sử dụng phương thức Close() đối tượng SqlConnection tạo bước 12 Lấy đối tượng DataTable từ đối tượng Dataset 13 Hiển thị cột cho hàng DataTable, sử dụng đối tượng DataRow để truy cập hàng DataTable Trong mục sau bạn học chi tiết bước xem mã ví dụ Bước 1: Cơng thức hóa chuỗi chứa chi tiết kết nối Cơ sở liệu Khi kết nối tới sở liệu máy chủ phục vụ SQL, chuỗi kết nối bạn phải rõ yếu tố sau: Tên máy tính SQL Server chạy Bạn gán tên trong phần Server chuỗi kết nối Nếu SQL Server chạy máy tính cục bạn, bạn sử dụng localhost làm tên Server Ví dụ: Server= Localhost Tên sở liệu Bạn gán tên phần database chuỗi kết nối Ví dụ: database = Northwind Tên người dùng để kết nối tới sở liệu Bạn đặt tên phần uid chuỗi Ví dụ: uid= sa Mật người dùng sở liệu Bạn đặt mật mã phần pwd chuỗi kết nối Ví dụ: pwd= sa Ghi nhớ: Điển hình, DBA (database administrator: người quản trị sở liệu) tổ chức bạn cung cấp cho bạn giá trị thích hợp cho chuỗi kết nối DBA chiụ trách nhiệm điều hành sở liệu Ví dụ sau tạo chuỗi đặt tên connectionString gán tới chuỗi thích hợp để kết nối tới sở liệu Northwind chạy máy tính cục bạn, sử dụng người dùng sa ( với mật : sa) để kết nối tới sở liệu này: string connectionString = "server=localhost;database=Northwind;uid=sa;pwd=sa"; Chuỗi kết nối bạn khác tùy thuộc cách bạn kết nối tới sở liệu Northwind bạn Bước 2: Tạo đối tượng SqlConnection để kết nối tới Cơ sở liệu Tạo đối tượng SqlConnection để kết nối tới sở liệu, gởi chuỗi kết nối tạo bước trước tới khởi dựng (constructor) Bạn sử dụng đối tượng lớp SqlConnection để kết nối tới sở liệu máy chủ phục vụ SQL Ví dụ sau tạo đối tượng SqlConnection có tên mySqlConnection, chuyển ConnectionString ( tạo bước 1) tới khởi dựng: SqlConnection mySqlConnection = new SqlConnection(connectionString); Bước 3: Cơng thức hóa chuỗi chứa phát biểu SELECT Cơng thức hóa chuỗi chứa phát biểu SELECT để truy xuất cột CustomerID, CompanyName, ContactName, Address cho 10 hàng từ bảng khách hàng Chẳng hạn: string selectString = "SELECT TOP 10 CustomerID, CompanyName, ContactName, Address "+ "FROM Customers "+ "ORDER BY CustomerID"; Ghi nhớ: Bạn sử dụng từ khóa TOP kết hợp với mệnh đề ORDER BY để truy xuất N hàng từ phát biểu SELECT Bạn học nhiều từ khóa TOP Chương Bước 4: Tạo đối tượng SqlCommand để giữ phát biểu SELECT ... tới sở liệu để đồng hóa liệu cục cất giữ bạn với sở liệu Bạn sử dụng lớp managed provider để đọc hàng từ sở liệu hướng tới Bạn sử dụng tập hợp khác lớp managed provider tùy thuộc vào sở liệu. .. với sở liệu Chương đặt tảng cho Phần II, "Lập trình sở liệu với ADO.NET, " Bạn thấy chi tiết lớp khác ADO.NET phần II Đặc trưng chương này: ■ Nhà cung cấp quản lý (Managed Provider) lớp Tập liệu. .. - kết nối tới sở liệu, lưu giữ hàng vào vùng nhớ cục bộ, ngắt kết nối khỏi sở liệu, đọc nội dung hàng cục tình trạng ngắt kết nối với sở liệu Khả lưu giữ cục hàng truy xuất từ sở liệu số sức mạnh