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

Bài giảng Lập trình trên môi trường Window: Chương 6 - ThS. Dương Thành Phết

51 22 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 51
Dung lượng 1,15 MB

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

Nội dung

Bài giảng Lập trình trên môi trường Window - Chương 6: Các đối tượng trong ADO.NET cung cấp cho người học các kiến thức Đối tượng Connection, đối tượng Command, đối tượng DataReadder, giao tiếp CSDL theo mô hình 1 lớp,... Mời các bạn cùng tham khảo nội dung chi tiết.

Trang 1

1

Trang 2

NỘI DUNG

1 Đối tượng Connection

2 Đối tượng Command

3 Đối tượng DataReadder

4 Đối tượng Dataset

5 Đối tượng DataAdapter

6 Giao tiếp CSDL theo mô hình 1 lớp

7 Giao tiếp CSDL theo mô hình 1 lớp

Trang 4

Thuộc tính

 ConnectionString: Chuỗi kết nối DataSource

 State: Tình trạng kết nối: Connecting (đang kêt nối), Open (đã kêt nối), Broken (kết nối bị ngắt khi

đã kết nối), Closed (kết nối đã đóng)

Phương thức

 Open(): Thiết lập kết nối đến DS

 Close(): Đóng kết nối với DS

1 ĐỐI TƯỢNG CONNECTION

Trang 5

5

Các bước tạo kết nối

 Bước 1: Khởi tạo đối tượng Connection với tham số connection string đối với database tương ứng

 Bước 2: Thiết lập kết nối đến database bằng phương thức Open

 Bước 3: Thực hiện các thao tác khai thác dữ liệu (select, insert, delete, update) từ database

 Bước 4: đóng kết nối đến database bằng phương thức Close

1 ĐỐI TƯỢNG CONNECTION

Trang 6

1 ĐỐI TƯỢNG CONNECTION

Sử dụng tên miền: System.Data.SqlClient;

Server: Chỉ định tên máy chứa Database

Database: Chỉ định tên cơ sở dữ liệu

Tạo kết nối với SQLServer (cách 1)

Trang 7

7

using System.Data.SqlClient;

SqlConnection cnn = new SqlConnection();

cnn.ConnectionString = “ Data Source =localhost;

Initial Catalog =Northwind; UserId =sa; Password =sa” cnn.Open(); //Mở kết nối

//xử lý trong quá trình kết nối

cnn.Close(); //Đóng két nối

1 ĐỐI TƯỢNG CONNECTION

DataSource: Chỉ định tên máy chứa Database

Initial Catalog: Chỉ định tên cơ sở dữ liệu

Userid: Tên tài khỏan đăng nhập SQLServer (nếu có)

Password: Mật khẩu đăng nhập (nếu có)

Tạo kết nối với SQLServer (cách 2)

Trang 8

using System.Data.OleDb;

OleDBConnection cnn = new OleDbSqlConnection();

cnn.ConnectionString = “Provider = Microsoft.Jet.OLEDB.4.0;

Data Source=QLHOCSINH.MDB"; cnn.Open();

//xử lý trong quá trình kết nối

cnn.Close();

Tạo kết nối với MS Access

Đối với MS Access 2007/2010 thì Provider=Microsoft.ACE.OLEDB.12.0

1 ĐỐI TƯỢNG CONNECTION

Trang 9

SqlConnection cnn = new SqlConnection();

private void btLogin_Click(object sender, EventArgs e)

{

String Tenmay = txtServername.Text;

String TenDN = txtUsername.Text;

String Matkhau = txtPassword.Text;

String TenCSDL = txtDatabasename.Text;

cnn.ConnectionString = "Server=" + Tenmay + "; Database=" + TenCSDL + " ;

User Id=" + TenDN + "; Password= " + Matkhau;

Trang 10

2 ĐỐI TƯỢNG COMMAND

 Quá trình tương tác với database cần phải biết hành động nào muốn xảy ra Điều này được thực hiện bởi đối tượng command

 Dùng đối tượng command để gửi một câu lệnh SQL tới database

 Một đối tượng command dùng một đối tượng connection để xác định database nào sẽ được truy xuất

 Có thể dùng một đối tượng command riêng lẻ để

Trang 11

 ExecuteScalar(): Thực hiện lệnh và trả về giá trị đơn

 ExecuteNonQuery(): Gọi các lệnh SQL, store, trả về số row bị tác động (Insert, Update, Delete…)

 ExecuteReader():Thực hiện lệnh và trả về DataReader

2 ĐỐI TƯỢNG COMMAND

Trang 12

SqlConnection cnn = new SqlConnection();

cnn.ConnectionString = “ Data Source =localhost;

Initial Catalog =QLsinhvien; User Id =sa; Password =sa” cnn.Open(); //Mở kết nối

SqlCommand cmd = new SqlCommand();

2 ĐỐI TƯỢNG COMMAND

SQL Command với câu lệnh Select

Trang 13

13

SqlCommand cmd = new SqlCommand();

cmd.Connection = cnn;

String MaMH = txtMaMH.Text;

String TenMH = txtTenMH.Text;

int Sotiet = int.Parse(txtSotiet.Text);

cmd.CommandText = "Insert into Monhoc(MaMH,TenMH, Sotiet)

values('" + MaMH + "',N'" + TenMH +"'," + Sotiet +")"; cmd.ExecuteNonQuery();

2 ĐỐI TƯỢNG COMMAND

SQL Command với câu lệnh Insert, Update, Delete

Trang 14

3 ĐỐI TƯỢNG DATAREADER

 Nhiều thao tác dữ liệu chỉ lấy một luồng dữ liệu để đọc Đối tượng data Reader cho phép lấy được kết quả của câu lệnh SELECT từ đối tượng command

 Để tăng hiệu suất, dữ liệu trả về từ một data reader

là một luồng dữ liệu fast forward-only có lợi về mặt tốc độ

 Là đối tượng truy cập dữ liệu trực tiếp sử dụng con trỏ phí Server và duy trì kết nối trong suốt quá trình đọc dữ liệu

 Tuy nhiên nếu phải thao tác dữ liệu, thì một DataSet

sẽ là một đối tượng tốt hơn để làm việc

Trang 15

 IsClosed: Cho biết dataReader đã đóng

 Item: Trị của cột truyền vào Tham số truyền vào là tên cột (hoặc số thứ tự từ 0)

Trang 16

3 ĐỐI TƯỢNG DATAREADER

Các phương thức

 Close: Đóng DataReader

 GetFieldType: Trả về kiểu dữ liệu của cột truyền vào

 GetName: Trả về tên của cột truyền vào

 GetValue: Trả về trị của cột truyền vào

 Read : Di chuyển đến dòng kế tiếp và trả về true nếu còn dòng để di chuyển, ngược lại trả về False

Trong khi dataReader đang mở các thao tác dữ liệu trên nguồn dữ liệu đều không thể cho đến khi dataRaeder đóng lại bằng lệnh Close

Trang 17

17

3 ĐỐI TƯỢNG DATAREADER

SqlCommand cmd = new SqlCommand();

Trang 18

4 DATA ADAPTER

4.1 Giới thiệu

 Để lầy dữ liệu từ nguồn dữ liệu vầ cho ứng dụng, chúng ta sử dụng một đối tượng gọi là DataAdapter Đối tượng này cho phép ta lấy cấu trúc và dữ liệu của các bảng trong nguồn dữ liệu

 DataAdapte là một bộ gồm 4 đối tượng command:

 SelectCommand: Cho phép lấy thông tin từ nguồn

 InsertCommand: Cho phép thêm dữ liệu vào bảng

 UpdateCommand: Cho phép điều chỉnh dữ liệu của bảng

 DeleteCommand: Cho phép xóa dữ liệu của bảng

Trang 19

dữ liệu trong chế độ ngắt kết nối

 Data Adapter sẽ đổ vào DataSet khi đọc dữ liệu và thực hiện thay đổi dữ liệu một lượt vào database Data adapter chứa một tham chiếu đến đối tượng connection và mở/đóng kết nối tự động khi đọc và ghi

dữ liệu vào database

Trang 20

new SQLDataAdapter(Lệnh, biến connection);

DataAdapter chỉ thao tác với một nguồn dữ liệu qua một đối tượng connection đang kết nối, khi Connection chưa

mở thì DataAdapter sẽ tự động mở kết nối khi cần và đóng lại

Trang 21

21

4 DATA ADAPTER

4.3 Các thuộc tính của DataAdapter

 DeleteCommand: Đối tượng Command chứa nội dung lệnh hủy các mẫu tin trên nguồn dữ liệu

 InsertCommand: Đối tượng Command chứa nội dung lệnh thêm các mẫu tin trên nguồn dữ liệu

 SelectCommand: Đối tượng Command chứa nội dung lệnh truy xuất các mẫu tin trên nguồn dữ liệu

 UpdateCommand: Đối tượng Command chứa nội dung lệnh sửa các mẫu tin trên nguồn dữ liệu

Trang 22

4 DATA ADAPTER

4.4 Các chức năng của DataAdapter

 Lấy dữ liệu từ nguồn: Sử dụng DataAdapter để lấy dữ liệu về cho các đối tượng

Trang 24

4 DATA ADAPTER

 Phương thức trả về mẫu tin lấy được

Dataset DS as New Dataset() Integer so;

so= DA.Fill(DS,”Sinhvien”)

 Để cập nhật dữ liệu về nguồn

Update(<mảng dòng>): Cập nhật các dòng (Các đối tượng DataRow) vào nguồn dữ liệu

Update(<Dataset>): Cập nhật các thay đổi trên tất cả các bảng của Dataset vào nguồn dữ liệu

Update(<DataTable>): Cập nhật tất cả các thay đổi trên DataTable vào nguồn dữ liệu

Update(<Dataset>,<Tên bảng>) Cập nhật các

Trang 29

29

5 DATASET

5.3 Các phương thức

 Để xóa bỏ Dataset

Gọi phương thức Dispone() để giải phóng mọi tài

nguyên trên vùng nhớ Dataset đang sử dụng

 Tạo quan hệ giữa hai bảng trong Dataset

Relations.Add(<DataColumn trên bảng cha>,

<Data Column trên bảng con>)

 Xóa quan hệ giữa hai bảng trong Dataset

Relations.Remove(<quan hệ>)

Trang 30

 Nhờ đối tượng DataAdapter làm trung gian

 DataSet là một đối tượng được dùng bởi tất cả Data Provider

Trang 31

31

6 GIAO TIẾP CSDL VỚI MÔ HÌNH 1 LỚP

Để load thông tin của nhân viên từ table NHANVIEN cũng như là thêm, sửa, xóa, thì ta cần thực hiện như sau

Trang 32

6 GIAO TIẾP CSDL VỚI MÔ HÌNH 1 LỚP

Trang 33

33

6 GIAO TIẾP CSDL VỚI MÔ HÌNH 1 LỚP

Trang 34

6 GIAO TIẾP CSDL VỚI MÔ HÌNH 1 LỚP

 Qua đây, chúng ta thấy rằng khi dùng mô hình 1 lớp kết nối CSDL thì không có sự phân loại trong khi cài đặt

 Code xử lý CSDL, code xử lý nghiệp vụ và code xử

lý thể hiện nằm chung với nhau, làm chương trình rất khó quản lý

 Để khắc phục các nhược điểm trên, chúng ta chuyển sang mô hình 3 lớp

Trang 35

35

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Ta xây dựng 3 lớp như sau cho NHANVIEN:

Lớp thao tác CSDL : Database.cs

Lớp xử lý nghiệp vụ : NhanVien.cs

Lớp xử lý giao diện : frmNhanvien.cs

Trang 36

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Bước 1: Xây dựng lớp thao tác CSDL Database.cs

Chức năng: Lớp Database đảm nhiệm việc giao tiếp

với cơ sở dữ liệu cho toàn ứng dụng Tất cả việc tương tác với CSDL dữ liệu diễn ra ở bất cứ nơi nào trong ứng dụng đều được thực hiện thông qua lớp này

Mục đích: Sở dĩ chúng ta phải xây dựng lớp này là

nhằm mang lại tính dễ bảo trì cũng như tính tiến hóa cho hệ thống Nếu sau này cần thay đổi môi trường ứng dụng (sang Oracle, Access, Db2 ) thì chúng ta chỉ việc chỉnh sửa lớp Database này mà không cần quan tâm đến phần còn lại của ứng dụng

Trang 37

37

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Execute Thực thi một câu lệnh truy vấn và trả về kết

quả là một DataTable Dùng cho các câu lệnh Select

ExecuteNonQuery Thực thi một câu lệnh không quan tâm đến kết

quả trả về Dùng cho các câu lệnh Insert, Delete, Update

Trang 38

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Right-Click project ThuVien, chọn Add  Class…

Trang 39

39

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Nhập vào tên lớp là Database.cs và click Add

Trang 40

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Viết code cho Database.cs như sau:

Trang 41

41

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Trang 42

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Bước 2 : Xây dựng lớp xử lý nghiệp vụ cho Nhân viên: Nhanvien.cs

Trang 43

43

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Trang 44

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Bước 3: Xây dựng lớp xử lý giao diện cho frmNhanVien.cs

Thiết kế giao diện như sau, đặt tên là frmNhanVien

Trang 45

45

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Trang 46

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Trang 47

47

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Trang 48

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Trang 49

49

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Trang 50

7 GIAO TIẾP CSDL VỚI MÔ HÌNH 3 LỚP

Ngày đăng: 25/10/2020, 23:21

🧩 Sản phẩm bạn có thể quan tâm