Tải bản đầy đủ (.pdf) (27 trang)

Truy suất cơ sở dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.19 MB, 27 trang )

1
2/19/2013 Trình bày: Nguyễn Hữu Nhân
 Tạo database SQL server
 Tổng quan về ADO.NET 4.0
 Thao tác với CSDL với ADO.NET 4.0
◦ Thiết lập kết nối CSDL
◦ Truy vấn CSDL
 SqlConnection
 SqlCommand
 SqlDataReader

2
2/19/2013 Trình bày: Nguyễn Hữu Nhân
 Right click vào mục
Database chọn New
Database.
 Nhập tên Database: News




 Chọn OK
3 2/19/2013 Trình bày: Nguyễn Hữu Nhân
Tạo table MENU
 Right click vào mục Table
trong Database News,
chọn New Table
 Nhập thông tin như hình:





 Ấn ctrl + S, nhập tên
table là MENU, chọn OK

4 2/19/2013 Trình bày: Nguyễn Hữu Nhân
 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

5 2/19/2013 Trình bày: Nguyễn Hữu Nhân
 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
 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

7
2/19/2013 Trình bày: Nguyễn Hữu Nhân
 KIẾN TRÚC ADO.NET
◦ DataSet
 Được thiết kế để có thể truy cập độc lập đến bất kỳ nguồn dữ liệu.
Kết quả là nó có thể sử dụng với các nguồn dữ liệu đa dạng và
khác nhau, dùng với dữ liệu XML hoặc dùng để quản lý dữ liệu
cục bộ của ứng dụng.
 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
 Khai báo namepage cần thiết
 Các bước kết nối đến CSDL

9 2/19/2013 Trình bày: Nguyễn Hữu Nhân
 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
 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


11
2/19/2013 Trình bày: Nguyễn Hữu Nhân
 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
 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)
13
2/19/2013 Trình bày: Nguyễn Hữu Nhân

SqlConnection sqlConn = new SqlConnection();
try
{
sqlConn.ConnectionString = strConn;
if (sqlConn.State != System.Data.ConnectionState.Closed)
sqlConn.Close();
sqlConn.Open();
}
catch
{
sqlConn.Dispose(); //Giai phong vung nho cua lop
}
14
2/19/2013 Trình bày: Nguyễn Hữu Nhân
 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.


15
2/19/2013 Trình bày: Nguyễn Hữu Nhân
 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
 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
17
2/19/2013 Trình bày: Nguyễn Hữu Nhân
 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.CommandType = System.Data.CommandType.Text;
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
 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ả
19
2/19/2013 Trình bày: Nguyễn Hữu Nhân
 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.CommandType = System.Data.CommandType.Text;
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
 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ề
21
2/19/2013 Trình bày: Nguyễn Hữu Nhân
 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
 Ví dụ
22
SqlCommand 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
 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ề
kết quả hay không

23
2/19/2013 Trình bày: Nguyễn Hữu Nhân
 TRUY VẤN CSDL
◦ Đối tượng SqlDataReader
 Ví dụ








24
SqlDataReader sqlDare;
while sqlDare.Read()
{
string s1 = sqlDare[1]; //Cột 1
string s2 = sqlDare[“ID_P”]; // Cột ID_P
}
2/19/2013 Trình bày: Nguyễn Hữu Nhân
 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 đó.
25
2/19/2013 Trình bày: Nguyễn Hữu Nhân

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×