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

Tài liệu học lập trình web 2

114 705 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

Thông tin cơ bản

Định dạng
Số trang 114
Dung lượng 2,41 MB

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

Nội dung

Trong kỹ thuật phần mềm, một ứng dụng web hay webapp là một trình ứng dụng mà có thể tiếp cận qua web thông qua mạng nhƣ Internet hay intranet. Ứng dụng web phổ biến nhờ vào sự có mặt vào bất cứ nơi đâu của một chƣơng trình. Khả năng cập nhật và bảo trì ứng dụng Web mà không phải phân phối và cài đặt phần mềm trên hàng ngàn máy tính là lý do chính cho sự phổ biến của nó. Ứng dụng web đƣợc dùng để hiện thực mail, bán hàng trực tuyến, đấu giá trực tuyến, wiki, diễn đàn thảo luận, Weblog, MMORPG, hệ quản trị nội dung, phần mềm quản lý nguồn nhân lực và nhiều chức năng khác.

Trang 1

TRƯỜNG TRUNG CẤP KINH TẾ KỸ THUẬT NGUYỄN HỮU CẢNH

Trang 2

LỜI NÓI ĐẦU

Nhằm đổi mới phương pháp giảng dạy, nâng cao chất lượng giáo dục chuyên nghiệp

và đào tạo theo nhu cầu xã hội Trường Trung cấp Kinh tế Kỹ thuật Nguyễn Hữu Cảnh biên soạn tài liệu giảng dạy trình độ Trung cấp chuyên nghiệp tất cả các môn học thuộc các ngành, chuyên ngành đào tạo tại trường, giúp cho học sinh có điều kiện học tập, nâng cao tính tự học và sáng tạo

Tài liệu giảng dạy môn Lập trình Web 2 thuộc học phần chuyên ngành của ngành đào tạo Tin học ứng dụng

Sau khi học xong môn học này, học sinh có khả năng :

- Rèn luyện tác phong làm việc, đức tính cẩn thận, chính xác, khoa học

Thời lượng và nội dung môn học:

Thời lượng : Lý thuyết 30 tiết; Thực hành 60 tiết

Nội dung môn học gồm các chương:

Bài 1 : Giới thiệu ADO.NET

Bài 2 : Tìm hiểu và ứng dụng cơ chế Data Binding

Bài 3 : Các đối tượng dữ liệu (Data Controls)

Trong quá trình biên soạn tài liệu này tác giả đã chọn lọc những kiến thức cơ bản, bổ ích nhất, có chất lượng nhằm đáp ứng tốt nhu cầu giảng dạy của giáo viên và học tập của học sinh bậc Trung cấp chuyên nghiệp tại trường

Tuy nhiên, quá trình thực hiện không thể tránh những thiếu sót, tác giả rất mong nhận được sự đóng góp của quý thầy cô đồng nghiệp và các em học sinh để hiệu chỉnh tài liệu giảng dạy ngày càng hiệu quả hơn

Trân trọng cảm ơn

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU

Trang 4

BÀI 1 GIỚI THIỆU ADO.NET

Sau bài học này, học sinh có khả năng

1.1 KIẾN TRÚC ADO.NET

ADO.NET là tập các lớp cung cấp dịch vụ truy cập dữ liệu hỗ trợ cho lập trình viên trên nền tảng NET ADO.NET cung cấp các thành phần tham gia vào việc xây dựng ứng dụng chia sẻ dữ liệu và phân tán Đây là phần tích hợp sẵn của nền tảng NET giúp truy cập dữ liệu quan hệ, XML một cách dễ dàng

Trước đây, việc xử lý dữ liệu chủ yếu dựa vào việc kết nối trực tiếp đến cơ sở dữ liệu theo mô hình hai lớp Hiện nay, các ứng dụng xử lý dữ liệu đã sử dụng mô hình nhiều lớp, lập trình viên có thể tiếp cận kỹ thuật ngắt kết nối nhằm mang lại hiệu quả cho những ứng dụng lớn

1.1.1 Các thành phần của ADO.NET

Hai thành phần chính của ADO.NET phục vụ cho việc truy cập và xử lý dữ liệu là trình cung cấp dữ liệu dựa trên nền tảng NET và đối tượng DataSet

1.1.1.1 Trình cung cấp dữ liệu ADO.NET

Là các thành phần được thiết kế trực tiếp truy cập dữ liệu, chúng có tính năng xử lý nhanh, tuy nhiên chỉ cho phép chỉ đọc và duyệt các mẫu tin theo một chiều tới duy nhất Gồm các thành phần đối tượng sau :

- Đối tượng Connection cung cấp các phương thức kết nối đến nguồn dữ liệu.

- Đối tượng Command cho phép truy cập đến các câu lệnh SQL liên quan đến cơ

sở dữ liệu và nhận kết quả từ việc thực thi các câu lệnh SQL này

- Đối tượng DataReader dùng để duyệt các mẫu tin trả về từ đối tượng Command

- Đối tượng DataAdapter là cầu nối giữa đối tượng DataSet với nguồn dữ liệu 1.1.1.2 Đối tượng DataSet

Được thiết kế cho việc truy cập dữ liệu độc lập với bất kỳ nguồn dữ liệu nào DataSet chứa tập hợp các đối tượng bảng DataTable gồm nhiều dòng , nhiều cột dữ liệu và khóa chính, khóa ngoại hay ràng buộc toàn vẹn

1.1.1.3 Lựa chọn giữa DataReader với DataSet

Sử dụng DataSet khi

- Nhận dữ liệu từ nguồn dữ liệu và chuyển sang cục bộ cho ứng dụng xử lý

- Điều khiển dữ liệu giữa các lớp của mô hình ứng dụng

Trang 5

- Tích hợp dữ liệu động vào các điều khiển của ASP.NET Server hoặc kết hợp dữ liệu từ nhiều nguồn khác nhau.

- Xử lý dữ liệu mà không cần phải mở kết nối đến cơ sở dữ liệu

Sử dụng DataReader khi

- Duyệt các mẫu tin nhanh chóng

- Tiết kiệm bộ nhớ phải lưu dữ liệu như DataSet để tăng tốc thực thi chương trình

1.1.2 LINQ to DataSet

Cung cấp khả năng truy vấn và kiểm tra biên dịch theo thời gian trên dữ liệu lưu trữ trong DataSet Cho phép viết các câu truy vấn bằng các ngôn ngữ lập trình như C# hay Visual Basic trên nền tảng NET

sở dữ liệu trả kết quả, LINQ to SQL sẽ chuyển kết quả này trở thành các đối tượng

1.1.4 ADO.NET Entity Framework

Cho phép lập trình viên tạo ứng dụng truy cập dữ liệu bằng cách lập trình theo mô hình khái niệm thay vì trực tiếp sử dụng mô hình quan hệ của cơ sở dữ liệu Mục đích làm giảm khối lượng mã lệnh và bảo trì các yêu cầu cho các ứng dụng xử lý dữ liệu

1.1.5 Dịch vụ dữ liệu WCF

Dùng để triển khai dịch vụ dữ liệu trên Web hay mạng cục bộ Dữ liệu có cấu trúc như một thực thể và có mối quan hệ như đặc tả của mô hình dữ liệu thực thể

Hình 1.1 Kiến trúc ADO.NET

1.2 TRÌNH CUNG CẤP DỮ LIỆU CỦA ADO.NET

Được dùng để kết nối đến cơ sở dữ liệu, thực thi câu lệnh và lấy kết quả Những kết quả này được xử lý trực tiếp cũng như gián tiếp khi cần bằng cách đặt toàn bộ kết quả vào đối tượng DataSet Trình cung cấp dữ liệu tạo cầu nối giữa nguồn dữ liệu và mã lệnh, tăng tính thi hành mà không phải sử dụng nhiều mã lệnh

Bảng 1.1 Danh sách các trình cung cấp dữ liệu trong NET

Trang 6

Tên Trình Cung Cấp Dữ liệu Mô Tả

Trình cung cấp dữ liệu cho SQL Server Dùng để truy cập đến cơ sở dữ liệu MS SQL

Server từ phiên bản 7.0 trở về sau Sử dụng namespace ystem.Data.SqlClient

Trình cung cấp dữ liệu cho OLEDB Dùng truy cập các nguồn dữ liệu thông qua đối

tượng OLEDB Sử dụng namespace System.Data.OleDb

Trình cung cấp dữ liệu cho ODBC Dùng truy cập các nguồn dữ liệu thông qua đối

tượng ODBC Sử dụng namespace System.Data.Odbc

Trình cung cấp dữ liệu cho Oracle Dùng truy cập nguồn dữ liệu Oracle Hỗ trợ

Oracle từ phiên bản 8.1.7 trở về sau Sử dụng namespace System.Data.OracleClient

Trình cung cấp dữ liệu cho EntityClient Dùng truy cập dữ liệu theo mô hình dữ liệu thực

System.Data.EntityClient

Bảng 1.2 Danh sách các đối tượng quan trọng của trình cung cấp dữ liệu

Connection Thiết lập kết nối đến nguồn dữ liệu bất kỳ

Command Thực thi câu lệnh truy cập trên nguồn dữ liệu

DataReader Đọc từng mẫu tin tuần tự từ đầu cho đến cuối

danhs sách Không đi ngược lại

DataAdapter Đổ nguồn dữ liệu vào DataSet và thực hiện cập

nhật từ DataSet trở lại nguồn dữ liệu

1.3 CÁC NAMESPACE CỦA ADO.NET

Phần này chúng ta sẽ tìm hiểu các namespace của ADO.NET

1.3.1 Namespace cho SQL Server (SQLClient)

Sử dụng giao thức dành riêng cho việc kết nối đền SQL Server Namespace này sẽ giúp tối ưu hóa việc truy cập trực tiếp đến SQL Server mà không cần phải có thêm các tầng dịch vụ khác như OLEDB hay ODBC

Trang 7

Hình 1.2 So sánh ưu điểm kết nối nguồn dữ liệu giữa SQLClient với OLEDB

Tuy nhiên để sử dụng được namespace cho SQL Server, ta phải cài đặt phiên bản từ 7.0 (2005) trở về sau Các lớp của trình cung cấp dữ liệu cho SQL Server được đặt trong

namespace System.Data.SqlClient Với những phiên bản trước, ta phải sử dụng trình

cung cấp dữ liệu cho OLEDB, các lớp trong trình này được đặt trong namespace

System.Data.OleDb.

Đoạn mã gọi namspace cho SQL Server sử dụng trong chương trình

1.3.2 Namespace cho OLEDB

Sử dụng công nghệ COM để truy cập dữ liệu và có thể kết nối đến nhiều nguồn dữ liệu khác nhau như (Oracle, SQL Server, MS Access…)

Bảng 1.3 Danh sách các driver hỗ trợ truy cập các nguồn dữ liệu

Microsoft.Jet.OLEDB.4.0 OLE DB cho Jet (MS Access)

Các lớp của trình cung cấp dữ liệu cho OLE DB được đặt trong namespace

System.Data.OleDb

Đoạn mã gọi namspace cho OLEDB sử dụng trong chương trình

1.3.3 Namespace cho Oracle (OracleClient)

Cho phép truy cập nguồn dữ liệu Oracle thông qua phần mềm kết nối Oracle Client Trình cung cấp dữ liệu này hỗ trợ Oracle từ phiên bản 8.1.7 trở về sau Các lớp của trình

cung cấp dữ liệu cho Oracle được đặt trong namespace System.Data.OracleClient.

Đoạn mã gọi namspace cho Oracle sử dụng trong chương trình

using System.Data.SqlClient;

using System.Data.OleDb;

using System.Data;

Trang 8

1.3.4 Namespace cho ODBC

Sử dụng trình quản lý điều khiển ODBC để truy cập dữ liệu ODBC này thường có sẵn trong hệ điều hành MS Windows Các lớp của trình cung cấp dữ liệu cho ODBC được đặt

trong namespace System.Data.Odbc

Đoạn mã gọi namspace cho ODBC sử dụng trong chương trình

1.4 TÌM HIỂU CƠ CHẾ KẾT NỐI CỦA ADO.NET QUA CONNECTED LAYER

Chức năng chính của bất kỳ ứng dụng cơ sở dữ liệu là việc kết nối nguồn dữ liệu và rút trích dữ liệu chứa trong nguồn đó

1.4.1 Chuỗi kết nối cơ sở dữ liệu

Là chuỗi chứa đựng thông tin ban đầu làm tham số cho trình cung cấp dữ liệu kết nối đến nguồn dữ liệu Mỗi trình cung cấp dữ liệu sẽ có chuỗi kết nối riêng

1.4.1.1 Chuỗi kết nối SQL Server

Có dạng sau :

Data Source=<Tên SQL Server>; Initial Catalog=<Tên cơ sở dữ liệu>; Integrated Security=True

Ví dụ :

Data Source=(local); Initial Catalog=TruongHoc; Integrated Security=True

1.4.1.2 Chuỗi kết nối OleDb

Có dạng sau :

Provider= Microsoft.Jet.OLEDB.4.0; Data Source=<đường dẫn đến cơ sở dữ liệu>; User ID=<username>; Password=<mật khẩu>

Ví dụ:

Kết nối đến cơ sở dữ liệu MS Access

Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb; User ID=Admin; Password=;

Kết nối đến cơ sở dữ liệu MS SQL Server

Provider=sqloledb; Data Source=MySqlServer; Initial Catalog=pubs; User Id=*****; Password=*****;

1.4.1.3 Chuỗi kết nối Oracle

Có dạng sau :

Data Source = <phiên bản Oracle>; User ID=<Tên username>; Password=<Mật khẩu>

Ví dụ:

using System.Data.Odbc;

Trang 9

Data Source=Oracle9i; User ID=*****; Password=*****;

1.4.2 Kết nối đến cơ sở dữ liệu

Sau khi đã thiết lập thông tin ban đầu trong chuỗi kết nối, tiếp theo chúng ta sử dụng đối tượng Connection để thực thi việc kết nối vào cơ sở dữ liệu

1.4.2.1 Kết nối cơ sở dữ liệu SQL Server

Sử dụng đoạn mã sau để thực hiện

1.4.2.2 Kết nối cơ sở dữ liệu OLEDB

Sử dụng đoạn mã sau để thực hiện

1.4.2.3 Kết nối cơ sở dữ liệu Oracle

Sử dụng đoạn mã sau để thực hiện

1.4.3 Đối tượng Command và Parameter

1.4.3.1 Đối tượng Command

Mỗi trình cung cấp dữ liệu có đối tượng Command riêng phục vụ việc thực thi và trả kết quả từ nguồn dữ liệu Trình cung cấp dữ liệu SQL Server dùng đối tượng SqlCommand, trình cung cấp dữ liệu OleDb dùng đối tượng OleDbCommand, trình cung cấp dữ liệu Oracle dùng đối tượng OracleCommand và trình cung cấp dữ liệu Odbc dùng đối tượng OdbcCommand

Mỗi đối tượng Command kể trên sử dụng phương thức thực thi và trả về kết quả theo ý muốn

Bảng 1.4 Danh sách phương thức thực thi của đối tượng Command

string connectionString = “Data Source=(local); Initial Catalog=TruongHoc; Integrated Security=True”;

SqlConnection connection = new SqlConnection(connectionString);

Trang 10

Tên Command Giá Trị Trả Về

ExecuteReader Trả về đối tượng DataReader

ExecuteScalar Trả về một giá trị tính toán

ExecuteNonQuery Thực thi một lệnh nhưng không trả về kết quả

ExecuteXMLReader Trả về đối tượng XMLReader Chỉ có trong

đối tượng SqlCommand

Đoạn mã mẫu sử dụng đối tượng SqlCommand để thực thi truy cập bảng MONHOC trong cơ sở dữ liệu TRUONGHOC

string connectionString = “Data Source=(local); Initial Catalog=TruongHoc; Integrated Security=True”;

SqlConnection connection = new SqlConnection(connectionString);

Trang 11

Đối tượng Command sử dụng Parameter để truyền giá trị đến câu lệnh SQL hay thủ tục lưu trữ và các giá trị này sẽ được kiểm tra kiểu trước khi được truyền Câu lệnh SQL có tham số giúp cải thiện tốc độ thực thi do cơ sở dữ liệu sẽ tìm chính xác thông tin dữ liệu

mà người dùng cần

Khi thêm tham số, ta phải cung cấp thuộc tính ParameterDirection để điều hướng giá trị trả về của tham số đó

Bảng 1.5 Danh sách các giá trị của tham số ParameterDirection

Input Mặc định Tham số truyền giá trị đến câu lệnh SQLInputOutput Tham số truyền giá trị đến câu lệnh SQL và nhận kết

Bảng 1.6 Cú pháp khai báo tham số của các trình cung cấp dữ liệu

Trình cung cấp dữ liệu Cú pháp đặt tên tham số

OleDb Type

Odbc Type

Oracle Type

Trang 12

DateTimeOffset chỉ có từ SQL Server 2008 trở

về sau

Không hỗ trợ Không hỗ trợ DateTime

TimeSpan

Time chỉ có từ SQL Server 2008 trở về sau

Date chỉ có từ SQL Server 2008 trở về sau

Time chỉ có từ SQL Server 2008 trở về sau

Đoạn mã sau sẽ thực hiện truy vấn tìm môn học Tin học A có mã môn học là THA

đã tồn tại trong cơ sở dữ liệu hay chưa?

SqlConnection connection = new SqlConnection(connectionString))

Trang 13

// Tạo đối tượng Command thực thi SQL.

SqlCommand command = new SqlCommand();

command.Connection = connection;

command.CommandText = "SELECT * FROM MONHOC WHERE MAMH =

@MAMH";

command.CommandType = CommandType.Text;

// Thêm tham số Input

SqlParameter parameter = new SqlParameter();

SqlDataReader reader = command.ExecuteReader();

Đoạn mã viết bằng OLEDB

OleDbCommand command = new OleDbCommand("SELECT * FROM MONHOC WHERE MAMH = ? ", connection);

1.5.1 Đối tượng DataAdapter

Dùng để truy cập và đổ dữ liệu lưu thành bảng trong đối tượng DataSet DataSet sẽ xử lý

dữ liệu các bảng mà nó lưu nhưng không ảnh hưởng đến cơ sở dữ liệu vật lý, sau đó nếu muốn thay đổi thực sự tại cơ sở dữ liệu vật lý, đối tượng DataAdapter sẽ nhận nguồn dữ liệu từ DataSet và cập nhật vào cơ sở dữ liệu

Trang 14

Mỗi trình cung cấp dữ liệu có DataAdapter khác nhau như SqlDataAdapter dành cho SQL Server, OleDbDataAdapter dành cho OLEDB, OdbcDataAdapter dành cho ODBC hay OracleDataAdapter của Oracle.

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 (dòng) vào bảng trong nguồn dữ

liệu

UpdateCommand : cho phép sửa đổi dữ liệu trên bảng trong nguồn dữ liệu.

DeleteCommand : cho phép xóa dòng dữ liệu trên bảng trong nguồn dữ liệu.

Chúng ta cần phải chỉ rõ nội dung lệnh truy vấn 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 hoặc chỉ rõ lệnh cho từng đối tượng

1.5.1.1 Tạo đối tượng DataAdapter

Cũng như đối tượng Command, chúng ta cần khai báo rõ DataAdapter sử dụng theo trình cung cấp dữ liệu nào

Ví dụ tạo đối tượng DataAdapter cho loại nguồn dữ liệu SQL Server như sau :

mở kết nối khi cần thiết và tự động đóng lại

1.5.1.2 Các chức năng của DataAdpater

a Lấy dữ liệu từ nguồn

Sau khi có đối tượng DataAdpater với nội dung SelectCommand và thông tin về kết nối, chúng ta có thể sử dụng DataAdapter để lấy dữ liệu về cho các đối tượng chứa dữ liệu như DataSet, DataTable qua phương thức Fill

- Đổ dữ liệu vào DataSet có sẵn Dữ liệu được lấy về DataSet dưới dạng các DataTable, với tên mặc định là Table, Table1, Table2, …

Fill(<dataset>)

Trang 15

- Đổ dữ liệu vào DataTable có sẵn

Fill(<datatable>)

- Đổ dữ liệu vào DataSet cho bảng <tên DataTable>; nếu chưa có, bảng sẽ được tạo Phương thức trả về số mẫu tin lấy về được

Fill(<dataset>, <tên DataTable>)

b Lấy cấu trúc dữ liệu từ nguồn

- Đổ cấu trúc dữ liệu vào DataSet có sẵn, phương thức trả về một tập hợp các bảng được thêm vào DataSet

FillSchema(<dataset>, <kiểu cấu trúc>)

- Đổ cấu trúc dữ liệu vào DataSet cho bảng <tên DataTable>; nếu chưa có, bảng sẽ được tạo ra

FillSchema(<dataset>, <kiểu cấu trúc>, <tên DataTable>)

<kiểu cấu trúc> quy định việc ánh xạ tên có được chấp nhận hay không

Bảng 1.8 Các giá trị của <kiểu cấu trúc>

SchemaType.Mapped Sử dụng các TableMappings cho các cấu

trúc đưa vào DataSet nếu trùng hợpSchemaType.Source Không sử dụng các TableMappings

c Tạo bộ lệnh cập nhật cho DataAdapter

Dựa vào nội dung lệnh truy xuất của DataAdapter, chúng ta có thể sử dụng một đối tượng

để tự động tạo các lệnh còn lại, đó là CommandBuilder

<DataSet> : Đối tượng DataSet mà DataAdapter sẽ cập nhật

- Cập nhật các thay đổi trên bảng có DataTable vào nguồn dữ liệu

Trang 16

<DataTable> : Đối tượng DataTable mà DataAdapter sẽ cập nhật

- Cập nhật các thay đổi trên bảng có tên <tên bảng> trong DataSet vào nguồn dữ liệu

Update(<DataSet>, <tên bảng>)

1.5.2 Đối tượng DataSet

Là bộ nhớ lưu trữ dữ liệu để xử lý theo mô hình lập trình quan hệ độc lập với nguồn dữ liệu DataSet biểu diễn đầy đủ dữ liệu của bảng, quan hệ giữa các bảng, ràng buộc toàn vẹn

Bảng 1.8 Các thuộc tính của DataSet

Relations Tập hợp các quan hệ (DataRelation) một nhiều

theo mô hình cơ sở dữ liệu quan hệ của DataSetTables Tập hợp các bảng (DataTable) của DataSet (chỉ

đọc)Các phương thức của DataSet

a Thêm bảng vào DataSet

Muốn đưa một DataTable vào DataSet, chúng ta dùng phương thức Add của tập hợp Tables

- Thêm một bảng mới với tên là <tên bảng>, đưa vào tập hợp Tables

Tables.Add(<tên bảng>)

- Đưa <bảng> vào tập hợp Tables

Tables.Add(<bảng>)

<bảng> là một đối tượng DataTable được đưa vào DataSet

Lưu ý: Tên bảng trong DataSet có phân biệt chữ hoa chữ thường Hai bảng tên “hocsinh”

và “Hocsinh” là hai bảng khác nhau

Ví dụ :

DataSet CSDL = new DataSet(“QLHocSinh”);

DataTable tblMonHoc = new DataTable(“MonHoc”);

CSDL.Tables.Add(tblMonHoc);

b Xóa bảng ra khỏi tập hợp Tables của DataSet

Các phương thức sau dùng để xóa bảng ra khỏi tập hợp Tables

- Xóa <bảng> khỏi tập hợp Tables

Trang 17

c Kiểm tra bảng có thuộc về DataSet

- Trả về True nếu trong Tables có bảng tên <tên_bảng>, ngược lại trả về False

1.5.3 Đối tượng 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:

Using System.Data.DataTable;

Ví dụ cách tạo một DataTable

DataTable bang = new DataTable(<tên bảng>);

DataTable hình thành từ các DataColumn, DataRow

Bảng 1.9 Các thuộc tính của DataTable

ChildRelations Trả về tập hợp những quan hệ trong đó bảng

đóng vai trò bảng cha

Constrains Trả về tập hợp các ràng buộc trong bảng

DefaultView Trả về DataView phát sinh từ bảng

Trang 18

ParentRelations Trả về tập hợp những quan hệ trong đó bảng

đóng vai trò bảng con

PrimaryKey Mảng các cột có chức năng làm khóa chính của

bảng

- Thêm dòng mới vào bảng

Thêm một dòng có sẵn vào bảng Dòng này được tạo ra từ phương thức NewRow của đối tượng DataTable

DataTable bang = new DataTable();

DataRow dongMoi = bang.NewRow();

Trang 19

Columns là tập hợp chứa các cột trong cấu trúc của bảng Mọi tham chiếu đến cột đều thông qua tập hợp này

- Lấy số cột trong tập hợp: cho biết số cột có trong tập hợp

1.6 ĐỐI TƯỢNG DỮ LIỆU SQLDATASOURCE

Đối tượng SqlDataSource lấy dữ liệu từ cơ sở dữ liệu SQL và đổ vào các điều khiển có

hỗ trợ hiển thị dữ liệu (TextBox, GridView …) Ngoài ra, SqlDataSource còn cho phép cập nhật hay sắp xếp dữ liệu trên Web mà không phải viết mã lệnh quá nhiều

a Khai báo đối tượng SqlDataSource

<asp:SqlDataSource id=”SqlDataSource1” runat=”server”/>

b Truy cập dữ liệu

Để truy cập dữ liệu từ cơ sở dữ liệu sử dụng SqlDataSource, ta cần thực hiện thiết lập giá trị cho các thuộc tính quan trọng sau :

- ProviderName : Tên trình cung cấp dữ liệu ADO.NET mà ta đang làm việc (SQL

Server, OLEDB, ODBC, Oracle) Ở đây, ta sử dụng Microsoft SQL Server nên ProviderName là “System.Data.SqlClient”

- ConnectionString : Chuỗi kết nối đến cơ sở dữ liệu cần làm việc.

- SelectCommand : Thiết lập câu truy vấn SQL dạng SELECT

Lưu ý : Việc thiết lập chuỗi kết nối cụ thể cho thuộc tính ConnectionString không được khuyến khích sử dụng đối với những dự án Web lớn Để ứng dụng Web dễ bảo trì và bảo mật, chuỗi kết nối sẽ được lưu vào thẻ <connectionString> trong tập tin Web.config Sau

đó, trong đối tượng SqlDataSource, ta sử dụng đối tượng ConnectionString để gọi chuỗi kết nối từ Web.config

Trang 20

c Hiển thị dữ liệu đến các điều khiển

Như đã biết, điều khiển SqlDataSource chỉ làm nhiệm vụ thực hiện các truy vấn và nhận kết quả trả về từ nguồn dữ liệu Việc hiển thị dành cho các điều khiển khác Đoạn mã sau minh họa cách đổ dữ liệu từ SqlDataSource đến điều khiển ListBox

d Sử dụng tham số với SqlDataSource

Tên tham số trong các câu lệnh SelectCommand, InsertCommand, UpdateCommand, DeleteCommand trong SqlDataSource nếu dùng nguồn dữ liệu SQL Server luôn bắt đầu bằng dấu “@”, trong khi đó nguồn OLEDB và ODBC dùng dấu “?”

Trang 21

UpdateCommand="UPDATE Employees SET LastName=@LastName, FirstName=@FirstName WHERE EmployeeID=@EmployeeID"

<asp:Parameter Name="LastName" Type="String" />

<asp:Parameter Name="FirstName" Type="String" />

</InsertParameters>

<UpdateParameters>

<asp:Parameter Name=”EmpID” Type=”Int32” />

<asp:Parameter Name=”LastName” Type=”String” />

<asp:Parameter Name=”FirstName” Type=”String” />

</UpdateParameters>

</asp:sqlDataSource>

CÂU HỎI ÔN TẬP BÀI 1

1 Trình bày chi tiết các thành phần của ADO.NET

2 Trình bày chức năng của các trình cung cấp dữ liệu trong ADO.NET

3 Trình bày cách gọi namespace của các trình cung cấp dữ liệu trong ADO.NET

4 Trình bày sự ưu điểm kết nối dữ liệu giữa SQL Server với OLEDB

5 Trình bày chức năng của đối tượng kết nối dữ liệu (Connection)

Trang 22

6 Trình bày chức năng của đối tượng Command.

7 Trình bày chức năng của đối tượng DataAdapter

8 Trình bày chức năng của đối tượng DataSet

9 Trình bày chức năng của đối tượng DataTable

Trang 23

THỰC HÀNH BÀI 1

Bài 1 : Bài thực hành này hướng dẫn học sinh cách viết mã lệnh tạo đối tượng kết

nối đến cơ sở dữ liệu MS SQL Server

Bước 1 Mở chương trình Visual Studio, chọn File  New  Project

Hình 1.3 Tạo dự án ASP.NET Web Application Bước 2 : Mở file Web.config , tìm thẻ <appSetting/> và chèn cặp thẻ sau :

Bảng 1.10 Các control tham gia thiết kế

Trang 24

Bước 4 : Mở file Default.aspx.cs, nhập mã lệnh vào phương thức Page_Load

//Bước 2 : Tạo đối tượng kết nối

SqlConnection con = new SqlConnection(conStr);

Trang 25

Bước 5 : Nhấn Ctrl + F5 chạy chương trình

Bài 2 : Bài thực hành này hướng dẫn học sinh cách viết mã lệnh lấy dữ liệu và xuất kết quả ra trang Web sử dụng các đối tượng sau :

- SqlConnection

- SqlCommand

- SqlDataReader

Bước 1 : Mở chương trình Visual Studio, chọn File  New  Project

Hình 1.4 Tạo dự án ASP.NET Web Application Bước 2 : Mở file Web.config , tìm thẻ <appSetting/> và chèn cặp thẻ sau ngay bên

Trang 26

Bước 3 : Mở file Default.aspx dạng Design, kéo Control sau đây vào vùng thiết kế

Bảng 1.11 Control tham gia thiết kế

StringBuilder htmlStr = new StringBuilder();

//Bước 1 : lấy chuỗi kết nối CSDL TruongHoc

string conStr =

WebConfigurationManager.ConnectionStrings["TruongHoc"].ConnectionString;

//Bước 2 : Tạo đối tượng kết nối

SqlConnection con = new SqlConnection(conStr);

Trang 27

cmd.Connection = con;

cmd.CommandType = CommandType.Text;

cmd.CommandText = "SELECT * FROM T_MONHOC";

SqlDataReader reader = cmd.ExecuteReader();

htmlStr.Append("<ul>");

while (reader.Read()) {

htmlStr.Append("<li>");

htmlStr.Append("Ma mon hoc :" + reader["mamh"] + "<br/>");

htmlStr.Append("Ten mon hoc :" + reader["tenmh"] + "<br/>");

htmlStr.Append("So tiet: " + reader["sotiet"] + "<br/>");

htmlStr.Append("Hoc phi : " + reader["hocphi"] + "<br/>");

Trang 28

Bước 1 : Mở chương trình Visual Studio, chọn File  New  Project

Hình 1.5 Tạo dự án ASP.NET Web Application Bước 2 : Mở file Web.config , tìm thẻ <appSetting/> và chèn cặp thẻ sau :

<connectionStrings>

<add name="TruongHoc" connectionString="Data Source=localhost\SQLEXPRESS; Initial Catalog=TruongHoc; Integrated Security=true"/>

</connectionStrings>

Bước 3 : Mở file Default.aspx dạng Design, kéo Control sau đây vào vùng thiết kế

Bảng 1.12 Các điều khiển tham gia thiết kế

Trang 29

TextBox txtSotiet

Hình 1.6 Thiết kế mẫu thêm môn học mới Bước 4 : Mở file Default.aspx.cs, nhập mã lệnh vào phương thức Page_Load

Trang 30

WebConfigurationManager.ConnectionStrings["TruongHoc"].ConnectionString; protected void Page_Load(object sender, EventArgs e)

Bước 5 : Viết mã lệnh cho hàm Du_Lieu_Nguon

protected void Du_Lieu_Nguon() {

StringBuilder htmlStr = new StringBuilder();

//Bước 1 : lấy chuỗi kết nối CSDL TruongHoc

string conStr = WebConfigurationManager.ConnectionStrings["TruongHoc"].ConnectionString;

//Bước 2 : Tạo đối tượng kết nối

SqlConnection con = new SqlConnection(conStr);

cmd.CommandText = "SELECT * FROM T_MONHOC";

SqlDataReader reader = cmd.ExecuteReader();

htmlStr.Append("<table border=1>");

htmlStr.Append("<tr>");

htmlStr.Append("<th>Ma mon hoc</th>");

htmlStr.Append("<th>Ten mon hoc</th>");

Trang 31

Bước 6 : Viết mã lệnh cho sự kiện Click trên nút Thêm

protected void btnThem_Click(object sender, EventArgs e)

Trang 32

Bước 7 : Viết mã lệnh cho hàm thêmMonHoc

protected void themMonHoc() {

Bước 8 : Nhấn Ctrl + F5 chạy chương trình

Bài 4 : Bài thực hành này hướng dẫn học sinh cách viết mã lệnh thực hiện tính toán trên các mẫu tin sử dụng các đối tượng sau:

- SqlConnection

- SqlCommand

- Hàm ExecuteScalar

Trang 33

Bước 1 : Mở chương trình Visual Studio, chọn File  New  Project

Hình 1.7 Tạo dự án ASP.NET Web Application

Bước 2 : Mở file Web.config , tìm thẻ <appSetting/> và chèn cặp thẻ sau ngay phía dưới: <connectionStrings>

<add name="TruongHoc" connectionString="Data Source=localhost\SQLEXPRESS; Initial Catalog=TruongHoc Integrated Security=true”/>

</connectionStrings>

Bước 3 : Mở file Default.aspx dạng Design, kéo Control sau đây vào vùng thiết kế

Bảng 1.13 Control tham gia thiết kế

Trang 34

//Bước 2 : Tạo đối tượng kết nối

SqlConnection con = new SqlConnection(conStr);

Trang 35

}

}

}

}

Bước 5 : Nhấn Ctrl + F5 chạy chương trình

Bài 5 : Bài thực hành sẽ hướng dẫn học sinh cách viết mã lệnh tạo đối tượng DataSet lấy dữ liệu nguồn và ngắt kết nối Sử dụng các đối tượng sau:

- SqlConnection

- SqlDataAdapter

- DataSet

Bước 1 : Mở chương trình Visual Studio, chọn File  New  Project

Hình 1.8 Tạo dự án ASP.NET Web Application Bước 2 : Mở file Web.config , tìm thẻ <appSetting/> và chèn cặp thẻ sau ngay phía

Trang 36

Bước 3 : Mở file Default.aspx dạng Design, kéo Control sau đây vào vùng thiết kế

Bảng 1.14 Control tham gia thiết kế

Bước 5 : Viết mã lệnh cho hàm Du_Lieu_Nguon

protected void Du_Lieu_Nguon() {

StringBuilder htmlStr = new StringBuilder();

Trang 37

//Bước 1 : lấy chuỗi kết nối CSDL TruongHoc

string conStr =

WebConfigurationManager.ConnectionStrings["TruongHoc"].ConnectionString; //Bước 2 : Tạo đối tượng kết nối

SqlConnection con = new SqlConnection(conStr);

try

{

con.Open();

string sql = "SELECT * FROM T_GIAOVIEN";

SqlDataAdapter da = new SqlDataAdapter(sql, con);

htmlStr.Append("<th>Ma giao vien</th>");

htmlStr.Append("<th>Ho giao vien</th>");

htmlStr.Append("<th>Ten giao vien</th>");

Trang 38

Bước 1 : Mở chương trình Visual Studio, chọn File  New  Project

Hình 1.9 Tạo dự án ASP.NET Web Application

Trang 39

Bước 2 : Mở file Web.config , tìm thẻ <appSetting/> và chèn cặp thẻ sau ngay phía

Bước 3 Mở file Default.aspx dạng Design, kéo Control sau đây vào vùng thiết kế

Bảng 1.15 Control tham gia thiết kế

DataSet ds = new DataSet();

protected void Page_Load(object sender, EventArgs e)

{

Trang 40

//Tạo câu truy vấn

string sqlMonHoc = "SELECT * FROM T_MONHOC";

string sqlGiaoVien = "SELECT * FROM T_GIAOVIEN";

string sqlLop = "SELECT * FROM T_LOP";

//Điền dữ liệu vào DataSet

SqlDataAdapter da = new SqlDataAdapter(sqlMonHoc,con);

//Tạo quan hệ giữa bảng T_GiaoVien với bảng T_Lop trong DataSet

DataRelation rlGiaoVien_Lop = new DataRelation("T_GIAOVIEN_T_LOP",

ds.Tables["T_GIAOVIEN"].Columns["MAGV"], ds.Tables["T_LOP"].Columns["MAGV"]);

//Tạo quan hệ giữa bảng T_MONHOC với bảng T_LOP trong DataSet

DataRelation rlMonhoc_Lop = new DataRelation("T_MONHOC_T_LOP",

ds.Tables["T_MONHOC"].Columns["MAMH"], ds.Tables["T_LOP"].Columns["MAMH"]);

//Thêm các quan hệ vừa tạo vào DataSet

ds.Relations.Add(rlGiaoVien_Lop);

ds.Relations.Add(rlMonhoc_Lop);

Ngày đăng: 15/06/2016, 14:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Nguyễn Ngọc Phương Bình, Thái Kim Phụng, Các Giải Pháp Lập Trình ASP.NET 2.0, NXB Giao Thông Vận Tải, 2007 Sách, tạp chí
Tiêu đề: Các Giải Pháp Lập Trình ASP.NET 2.0
Nhà XB: NXB Giao Thông Vận Tải
2. Nguyễn Minh Đạo, Giáo Trình Lập Trình Web với ASP.NET, NXB Đại Học Quốc Gia TPHCM, 2014 Sách, tạp chí
Tiêu đề: Giáo Trình Lập Trình Web với ASP.NET
Nhà XB: NXB Đại Học Quốc Gia TPHCM
3. Hoàng Đức Hải, ASP 3.0 &amp; ASP.NET, NXB Lao Động Xã Hội, 2006 Sách, tạp chí
Tiêu đề: ASP 3.0 & ASP.NET
Nhà XB: NXB Lao Động Xã Hội
4. Nguyễn Văn Lân, Kỹ Thuật Xây Dựng Ứng Dụng ASP.NET, NXB Lao Động Xã Hội, 2008 Sách, tạp chí
Tiêu đề: Kỹ Thuật Xây Dựng Ứng Dụng ASP.NET
Nhà XB: NXB Lao Động Xã Hội
5. Phạm Hữu Khang, C# 2005, NXB Lao Động Xã Hội, 2007 Sách, tạp chí
Tiêu đề: C# 2005
Nhà XB: NXB Lao Động Xã Hội
6. Dương Quang Thiện, .NET Toàn Tập, NXB Tổng Hợp TP.HCM, 2005 Sách, tạp chí
Tiêu đề: NET Toàn Tập
Nhà XB: NXB Tổng Hợp TP.HCM
7. Đỗ Lâm Thiên, Lập Trình Ứng Dụng Web với ASP.NET, NXB Đại Học Quốc Gia TP.HCM, 2007 Sách, tạp chí
Tiêu đề: Lập Trình Ứng Dụng Web với ASP.NET
Nhà XB: NXB Đại Học Quốc Gia TP.HCM

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Giá trị Label thay đổi khi gõ chuỗi vào TextBox 2.3. UPDATE SOURCE TRIGGER - Tài liệu học lập trình web 2
Hình 2.1. Giá trị Label thay đổi khi gõ chuỗi vào TextBox 2.3. UPDATE SOURCE TRIGGER (Trang 45)
Hình 3.5. Thiết lập thông số kết nối cơ sỡ dữ liệu TruongHoc - Tài liệu học lập trình web 2
Hình 3.5. Thiết lập thông số kết nối cơ sỡ dữ liệu TruongHoc (Trang 73)
Hình 3.17. Chọn các sự kiện Hủy, Sửa và Cập Nhật - Tài liệu học lập trình web 2
Hình 3.17. Chọn các sự kiện Hủy, Sửa và Cập Nhật (Trang 81)
Hình 3.24. Lưu chuỗi kết nối vào tập tin Web.config - Tài liệu học lập trình web 2
Hình 3.24. Lưu chuỗi kết nối vào tập tin Web.config (Trang 85)
Hình 3.23.  Chuỗi kết nối cơ sở dữ liệu TruongHoc - Tài liệu học lập trình web 2
Hình 3.23. Chuỗi kết nối cơ sở dữ liệu TruongHoc (Trang 85)
Hình 3.25. Cấu hình câu lệnh Select - Tài liệu học lập trình web 2
Hình 3.25. Cấu hình câu lệnh Select (Trang 86)
Hình 3.29. Chức năng Auto Format định dạng kiểu hiển thị - Tài liệu học lập trình web 2
Hình 3.29. Chức năng Auto Format định dạng kiểu hiển thị (Trang 88)
Hình 3.31. Giao diện Edit Fields - Tài liệu học lập trình web 2
Hình 3.31. Giao diện Edit Fields (Trang 89)
Hình 3.33. Kích hoạt chức năng phân trang, thêm, xóa, sửa - Tài liệu học lập trình web 2
Hình 3.33. Kích hoạt chức năng phân trang, thêm, xóa, sửa (Trang 91)
Hình 3.34. Giao diện tạo mới dự án ASP.NET - Tài liệu học lập trình web 2
Hình 3.34. Giao diện tạo mới dự án ASP.NET (Trang 92)
Hình 3.38. Thiết lập các thông số kết nối đến cơ sở dữ liệu TruongHoc - Tài liệu học lập trình web 2
Hình 3.38. Thiết lập các thông số kết nối đến cơ sở dữ liệu TruongHoc (Trang 94)
Hình 3.44. Chọn Data Source cho DataList - Tài liệu học lập trình web 2
Hình 3.44. Chọn Data Source cho DataList (Trang 97)
Hình 3.48. Thiết kế giao diện hiển thị mẫu tin về môn học - Tài liệu học lập trình web 2
Hình 3.48. Thiết kế giao diện hiển thị mẫu tin về môn học (Trang 99)
Hình 3.53. Thêm hai nút Ghi và Hủy vào chế độ chỉnh sửa - Tài liệu học lập trình web 2
Hình 3.53. Thêm hai nút Ghi và Hủy vào chế độ chỉnh sửa (Trang 104)

TỪ KHÓA LIÊN QUAN

w