KIẾN TRÚC ADO.NET ◦ .NET Framework Data Providers: gồm các thành phần được thiết kế tường minh cho việc thao tác dữ liệu và nhanh chóng, về phía trước, chỉ đọc khi truy cập đến dữ liệu
Trang 2 Tạo database SQL server
Trình bày: Nguyễn Hữu Nhân
Trang 3 Right click vào mục
Database chọn New
Database
Nhập tên Database: News
Chọn OK
Trang 4Tạo table MENU
Right click vào mục Table
trong Database News,
Trình bày: Nguyễn Hữu Nhân
Trang 5 Tương tự tạo table PAGE, thông tin như
sau:
Ấn ctrl + S, nhập tên table là PAGE, chọn OK
Trang 6 KIẾN TRÚC ADO.NET
◦ Các lớp thư viện ADO.NET bao gồm 2 nhóm chính: Net
Framework Data Providers (trình cung ứng dữ liệu NET
Framework ) và DataSet
6 2/19/2013
Trình bày: Nguyễn Hữu Nhân
Trang 7 KIẾN TRÚC ADO.NET
◦ .NET Framework Data Providers: gồm các thành phần được
thiết kế tường minh cho việc thao tác dữ liệu và nhanh chóng, về phía trước, chỉ đọc khi truy cập đến dữ liệu
Connection: cung cấp việc kết nối kết các nguồn dữ liệu
Command: cho phép truy cập đến các câu lệnh dữ liệu để trả về dữ
liệu, chỉnh sửa dữ liệu, chạy thủ tục lưu trữ, gửi hoặc truy xuất các
tham số thông tin
DataReader: cung cấp việc truy cập nhanh và chỉ đọc đến kết quả truy vấn
DataAdapter: cung cấp cầu nối giữa đối tượng DataSet và nguồn dữ
liệu DataAdapter sử dụng đối tượng Command để thực thi các câu
lệnh SQL để đổ vào DataSet cũng như cập nhật dữ liệu từ DataSet trở lại nguồn dữ liệu
Trang 8 DataSet chứa một hoặc nhiều đối tượng bảng dữ liệu (DataTable)
mà mỗi đối tượng chứa các dòng và cột dữ liệu, và cũng có khóa
chính, khóa ngoại, ràng buộc và mối quan hệ thông tin giữa các
DataTable
8 2/19/2013
Trình bày: Nguyễn Hữu Nhân
Trang 9 Khai báo namepage cần thiết
Các bước kết nối đến CSDL
Trang 10 Khai báo namepage cần thiết
Cần khai báo namepage sau ở phần đầu chương trình
10 2/19/2013
Trình bày: Nguyễn Hữu Nhân
Trang 11 Các bước kết nối đến CSDL
◦ Để thiết lập kết nối đến CSDL SQL Server
thực hiện như sau:
Xây dựng chuỗi chuỗi kết nối đến CSDL
Tạo một thể hiện của lớp SqlConnection và truyền
chuỗi kết nối vào trong hàm xây dựng
Gọi phương thức Open để mở kết nối
Trang 12 Data Source= WIN7-PC ;Initial
Catalog= qlbh ;Integrated Security=True;
Server= 172.16.2.21 ; Initial Catalog= qlcv ;
uid= qlcongvan ;pwd= qtm@DThU123 ;
12 2/19/2013
Trình bày: Nguyễn Hữu Nhân
Trang 13 DataSource: chỉ định server sẽ kết nối Nếu kết nối trên
máy tính cục bộ ta có thể sử dụng (local)
InitialCatalog: chỉ định tên CSDL cần sử dụng
IntegratedSecurity: true - sử dụng quyền chứng thực
Windows Nếu sử dụng tài khoản SQL Server thì thiết
đặt về IntegratedSecurity = false hoặc bỏ qua, sau đó
thêm hai từ khóa sau vào đối tượng
SqlConnectionStringBuilder: UserID (tên tài khoản trong SQL Server) và Password (mật khẩu tương ứng UserID)
Trang 14SqlConnection sqlConn = new SqlConnection();
try
{
sqlConn.ConnectionString = strConn;
if (sqlConn.State != System.Data.ConnectionState.Closed) sqlConn.Close();
Trình bày: Nguyễn Hữu Nhân
Trang 15 TRUY VẤN CSDL
◦ Đối tượng SqlCommand
ADO.NET cho phép xử lý bất kỳ câu lệnh
SQL nào thông qua thể hiện của lớp
SqlCommand
Lớp này đóng gói một hay nhiều câu lệnh
SQL và chứa các phương thức để yêu cầu
xử lý các câu lệnh dựa kết nối với SQL
Server, tùy chọn việc trả về kết quả truy vấn
Trang 16 TRUY VẤN CSDL
◦ Đối tượng SqlCommand
Tạo đối tượng Command
Tạo một thể hiện của SqlCommand
Gán câu lệnh SQL vào thuộc tính CommandText
của đối tượng
Thiết lập thuộc tính Connection của đối tượng là
một thể hiện đã được mở kết nối của SqlConnection
Gọi một phương thức của đối tượng để thực thi
câu lệnh
16 2/19/2013
Trình bày: Nguyễn Hữu Nhân
Trang 17 TRUY VẤN CSDL
◦ Đối tượng SqlCommand
Truy vấn không trả về kết quả
Đối tượng Command cho phép làm việc với các
câu lệnh có trả về kết quả và không trả về kết quả
Các câu lệnh không trả về kết quả thường là các
hành động thêm, cập nhật hoặc xóa các mẫu tin từ CSDL
Để xử lý các câu truy vấn dạng này, sử dụng
phương thức ExecuteNonQuery
Trang 18 TRUY VẤN CSDL
◦ Đối tượng SqlCommand
Truy vấn không trả về kết quả
Ví dụ
18
SqlCommand sqlComm = new SqlCommand();
sqlComm Connection = sqlConn ;
sqlComm CommandText = sql; //Insert, Update, Delete
int n = sqlComm ExecuteNonQuery();
//n là số mẫu tin bị tác động khi thực thi
2/19/2013 Trình bày: Nguyễn Hữu Nhân
Trang 19 TRUY VẤN CSDL
◦ Đối tượng SqlCommand
Truy vấn trả về kết quả
Đối tượng Command chứa nhiều phương thức cho phép trả
về giá trị đơn hoặc nhiều dòng dữ liệu của bảng dữ liệu
Trả về giá trị đơn
Phương thức ExecuteScalar gửi một câu lệnh SQL hoặc
một thủ tục lưu trữ đến CSDL và trả về giá trị đơn Phương thức này hữu dụng cho các câu lệnh SELECT mà chỉ trả
về một giá trị
ExecuteScalar trả về giá trị kiểu Object nên cần chuyển
về kiểu mong muốn sau khi nhận Phương thức trả về
System.DBNull nếu không có kết quả
Trang 20 TRUY VẤN CSDL
◦ Đối tượng SqlCommand
Truy vấn không trả về kết quả
Ví dụ
20
SqlCommand sqlComm = new SqlCommand();
sqlComm Connection = sqlConn ;
sqlComm CommandText = sql; //Avg, Sum, Min, Max
int n = sqlComm ExecuteScalar();
//n nhận giá trị của hàm Avg, Sum, Min, max
2/19/2013 Trình bày: Nguyễn Hữu Nhân
Trang 21 TRUY VẤN CSDL
◦ Đối tượng SqlCommand
Truy vấn trả về kết quả
Trả về các dòng dữ liệu
Phương thức ExecuteReader cho phép xử lý các dòng dữ
liệu trả về từ câu lệnh SELECT hoặc thủ tục lưu trữ
Phương thức này trả về đối tượng SqlDataReader cho phép duyệt qua các dòng dữ liệu trả về
Trang 22SqlCommand sqlComm = new SqlCommand();
sqlComm.Connection = sqlConn;
sqlComm.CommandType = System.Data.CommandType.Text;
sqlComm.CommandText = sql; //Select
SqlDataReader sqlDare = sqlComm.ExecuteReader
2/19/2013 Trình bày: Nguyễn Hữu Nhân
Trang 23 TRUY VẤN CSDL
◦ Đối tượng SqlDataReader
Đối tượng này cho phép duyệt qua các dòng dữ liệu trả về, kiểm tra giá trị dữ liệu các cột tại mỗi dòng
SqlDataReader nhanh và nhẹ
SqlDataReader trỏ đến chính xác một dòng dữ liệu
tạo một thời điểm
Phương thức Read(): duyệt tuần tự qua các dòng
dữ liệu Phương thức trả về false khi không còn
dòng dữ liệu nào
Thuộc tính HasRows: kiểm tra truy vấn có trả về
Trang 25 TRUY VẤN CSDL
◦ Đối tượng SqlDataReader
Chú ý
Phải luôn gọi phương thức Close() hoặc Dispose() khi kết
thúc việc sử dụng đối tượng Mặc định, SQL Server chỉ cho phép sử dụng một đối tượng reader tại một thời điểm Để mở reader mới cần đóng đối tượng trước đó
Trang 26 TRUY VẤN CSDL
◦ Đối tượng SqlDataReader
Truy cập giá trị các field (trường)
Các phương thức truy cập dữ liệu các field