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

giáo trình lập trình cơ sở dữ liệu nghề tin học ứng dụng cao đẳng

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.26 MB, 69 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

ĀY BAN NHÂN DÂN THÀNH PHà Hâ CHÍ MINH

<b>TR¯àNG CAO ĐÂNG BÁCH KHOA NAM SÀI GÒN </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>MĀC LĀC </b>

<b><small>BÀI 1: TàNG QUAN VÀ ADO.NET ... 4 </small></b>

<b><small>1.1. Gißi thißu ADO.NET ... 4 </small></b>

<b><small>1.2. Ki¿n trúc ADO.NET ... 5 </small></b>

<b><small>1.3. K¿t nái MS SQL Server bÁng SQL Server Data Provider ... 6 </small></b>

<b><small>1.4. K¿t nái Oracle bÁng Oracle Data Provider ... 7 </small></b>

<b><small>1.5. K¿t nái MS Access bÁng Access Data Provider ... 7 </small></b>

<b><small>BI 2: CC I TỵNG TRONG Mễ HèNH K¾T NàI ADO.NET ... 10 </small></b>

<b><small>2.1. Đái t°ÿng Connection ... 10 </small></b>

<b><small>2.2. Đái t°ÿng Command ... 14 </small></b>

<b><small>2.3. Đái t°ÿng DataReader ... 22 </small></b>

<b><small>2.4. Đái t°ÿng DataAdapter và DataSet... 25 </small></b>

<b><small>BÀI 3: MƠ HÌNH MVC (MODEL – VIEW – CONTROLLER) ... 31 </small></b>

<b><small>3.1. Gißi thißu mơ hình MVC ... 31 </small></b>

<b><small>3.2. Ki¿n trúc mơ hình MVC ... 32 </small></b>

<b><small>3.3. Lßp Models ... 33 </small></b>

<b><small>3.4. Lßp Controls ... 37 </small></b>

<b><small>3.5. Lßp Views ... 44 </small></b>

<b><small>BÀI 4: CRYSTAL REPORT VÀ LINKQ ... 46 </small></b>

<b><small>4.1. Gißi thißu Crystal Report ... 46 </small></b>

<b><small>4.2. Gißi thißu LINQ ... 52 </small></b>

<b><small>4.3. Ki¿n trúc LINQ ... 52 </small></b>

<b><small>4.4. Sÿ dāng LINQ vßi Object ... 57 </small></b>

<b><small>4.5. Sÿ dāng LINQ vßi ADO.NET ... 60 </small></b>

<b><small>BÀI 5: ĐĨNG GĨI ĀNG DĀNG ... 61 </small></b>

<b><small>5.1. Cách tÁi th° vißn đóng gói ... 61 </small></b>

<b><small>5.2. Cách thāc đóng gói ... 62 </small></b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>BÀI 1: TàNG QUAN VÀ ADO.NET Māc tiêu: </b>

Trình bày được kiến trúc ADO.NET

Sử dÿng kiến trúc ADO.NET kết nái được đến Hệ quản trị cơ sở dÿ liệu

<b>1.1. Gißi thißu ADO.NET </b>

FRAMEWORK đảm nhÁn vai trò thao tác với CSDL.

Access, …

CSDL sau đó ngắt kết nái với CSDL và thāc hiện xử lý dÿ liệu.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

o Mơ hình kết nái: Ln phải duy trì kết nái trong suát quá trình xử lý dÿ liệu.

lỗi;

người sử dÿng truy cÁp CSDL đãng thời tát hơn.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Thành phần thă nhất:.NET Framework Data Provider được thiết kế để thāc hiện các thao tác kết nái, gửi các lệnh xử lý đến CSDL (thành phần này còn được gọi với một tên khác là lớp kết nái – Connectectivity Layer). Trong ADO.NET, có 4 đái tượng chính với các chăc năng cơ bản như sau:

tÿc lưu trÿ sẵn (stored procedure) cāa CSDL

chiều tiến cāa các record

DataAdapter: dùng để chuyển dÿ liệu truy vấn được cho các đái tượng lưu trÿ

SELECT, INSERT, UPDATE, DELETE

<b>1.3. K¿t nái MS SQL Server bÁng SQL Server Data Provider </b>

Các bước tạo kết nái tới CSDL SQL Server. Bước 1: Khai báo đái tượng SqlConnection

SqlConnection conn = null;

Bước 2: Tạo chuỗi kết nái tới CSDL SQL Server string connectionString = "Data Source=Server; Initial Catalog=QuanLyBanHang; UID=sa; PWD=123"; Bước 3: Tạo đái tượng Connection

conn = new SqlConnection(connectionString); Bước 4: Mở kết nái qua đái tượng Connection conn.Open();

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>1.4. K¿t nái Oracle bÁng Oracle Data Provider </b>

Các bước tạo kết nái tới CSDL Oracle.

Bước 1: Khai báo đái tượng OracleConnection OralceConnection conn = null;

Bước 2: Tạo chuỗi kết nái tới CSDL Oracle

string connectionString = "Data Source=Server; Initial Catalog=QuanLyBanHang; UID=sa; PassWord=''"; Bước 3: Tạo đái tượng Connection

conn = new OracleConnection(connectionString); Bước 4: Mở kết nái qua đái tượng Connection conn.Open();

<b>1.5. K¿t nái MS Access bÁng Access Data Provider </b>

Các bước tạo kết nái tới CSDL Oracle.

Bước 1: Khai báo đái tượng OracleConnection OralceConnection conn = null;

Bước 2: Tạo chuỗi kết nái tới CSDL Access

string connectionString = "Data Source=Server; Initial Catalog=QuanLyBanHang; UID=sa; PassWord=''"; Bước 3: Tạo đái tượng Connection

conn = new OracleConnection(connectionString);

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Bước 4: Mở kết nái qua đái tượng Connection conn.Open();

malop, tinhtrang, hinhanh)

<b>Giangvien (magv, hoten, makhoa, sdt) </b>

<b>Monhoc (mamh, tenmh, sotiet, sotinchi, makhoa, socotdiemKT) Khoa (makhoa, tenkhoa,) </b>

<b>Lop (malop, tenlop, makhoa, khoahoc) </b>

<b>Phanmon (mapm, namhoc, hocky, malop, magv, mamh) </b>

<b>Bangdiem(mapm, masv, hs11, hs12, hs21, hs22, TBKT, thi1, thi2, KTM1, </b>

<small>create database QUANLYSINHVIEN Use QUANLYSINHVIEN </small>

<small>---khoa </small>

<small>create table khoa( </small>

<small>makhoa char(10) not null primary key, tenkhoa nvarchar(100) </small>

<small>) </small>

<small>---giangvien </small>

<small>create table GIANGVIEN ( </small>

<small> magv char (4)not null primary key, makhoa char (10), </small>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<small> hotengv nvarchar (50), sdt varchar (15) ) </small>

<small> alter table GIANGVIEN </small>

<small>add constraint fk_giangvien_makhoa foreign key (makhoa) references khoa(makhoa) </small>

<small> ---lop </small>

<small> create table Lop( </small>

<small>malop char(10) not null primary key, makhoa char(10), </small>

<small>tenlop nvarchar(100), </small>

<small>khoahoc varchar(10) not null ) </small>

<small>alter table Lop </small>

<small>add constraint fk_lop_makhoa foreign key (makhoa) references Khoa(makhoa) </small>

<i><small>(Sinh viên tự thiết kế các table còn lại) </small></i>

<small>INSERT INTO Khoa (makhoa, tenkhoa) VALUES ('CNTT', N'Công nghệ thông tin'), </small>

<small>('KT', N'Kinh tế'), ('NN', N'Ngoại ngÿ') </small>

SQL Server và Microsoft Access

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>BI 2: CC I TỵNG TRONG MƠ HÌNH K¾T NàI ADO.NET Māc tiêu: </b>

Trình bày được chăc năng cāa các đái tượng trong mơ hình kết nái ADO.NET Sử dÿng các đái tượng trong ADO.NET để kết nái đến cơ sở dÿ liệu và thāc hiện các thao tác xử lý dÿ liệu

<b>2.1. Đái t°ÿng Connection </b>

Có nhiều lớp Connection trong ADO.NET – mỗi lớp tương ăng với một Data

này đều phải implement interface IdbConnection.

Thuộc tính: ConnectionString: Thuộc tính chuỗi kết nái với CSDL (DataSource);

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

❖<b> Quy trình k¿t nái đ¿n CSDL </b>

<b>Đái t°ÿng SqlConnection </b>

Khai báo Namspace: Using System.Data.SqlClient

SqlConnection Conn = new SqlConnection();

trÿ chuỗi kết nái

<b>Đái t°ÿng OracleConnection </b>

Khai báo Namspace: Using System.Data. OracleClient

Khởi tạo biến đái tượng kết nái: Conn = new OracleConnection(); Hoặc

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

OracleConnection Conn = new OracleConnection();

OracleConnection Conn = new OracleConnection(ConnStr);

<b>Đái t°ÿng OleDbConnection </b>

Khai báo Namspace: Using System.Data.OleDbClient

OleDbConnection Conn = new OleDbConnection();

OleDbConnection Conn = new OleDbConnection(ConnStr);

Chuỗi kết nái cơ sở dÿ liệu (ConnectionString) xác định data source và các thông tin cần thiết để truy xuất data source, chẳng hạn như User ID và Password, … Ngoài nhÿng thơng tin cơ bản này, Connection string cịn có thể chăa các giá trị cho các trường dÿ liệu đặc trưng cho data provider. Ví dÿ, Connection string cho Ms Sql Server có thể chăa các giá trị để quy định Connection Timeout và Packet Size.

<b>Chußi k¿t nái c sò d liòu MS SQL Server </b>

Cỏch 1: @"Server=.\SQLEXPRESS;Database=QuanLyBanHang; Integrated Security=SSPI;"

Cách 2: @"Server=.\SQLEXPRESS;Database= QuanLyBanHang; Trusted_Connection=True;=

Cách 3: "Data Source=.\\SQLEXPRESS; Initial Catalog= QuanLyBanHang; Integrated Security=True;"

<b>Chußi k¿t nỏi c sò d liòu Oracle </b>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>@"Server=.\ Oracle;Database=QuanLy BanHang; Integrated Security=SSPI;" </b>

"Data Source=.\\Oracle; Initial Catalog= QuanLyBanHang; Integrated Security=True;"

<b>Chuòi kt nỏi c sò d lißu Access </b>

Connection

Connection Conn.close();

2.1.5. Connection Pooling

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

- Pooling cho phép sử dÿng lại các connection để mang lại hiệu quả trong việc

Nếu kết nái thāc hiện đã có trong pool thì sẽ được sử dÿng lại

Nếu thuộc tính Pooling có giá trị là True thì có thể sử dÿng lại kết nái từ pool.

<b>2.2. Đái t°ÿng Command </b>

Đái tượng Command trên .NET cho phép thi hành trāc tiếp nhÿng câu lệnh

để thêm, chọn, cÁp nhÁt và xóa dÿ liệu trên CSDL. Người dùng cũng có thể dùng đái tượng command để thi hành nhÿng stored procedure trong CSDL.

Đái tượng Command cho phép chọn kiểu tương tác mong mn thāc hiện với database. Ví dÿ, chúng ta có thể thāc hiện các lệnh select, insert, modify, và

Command là đái tượng dùng để thāc hiện các truy vấn SQL và các lệnh quản

gọi các thā tÿc nội tại (stored procedures) hoặc các truy vấn..

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

o Connection: Đái tượng Connection, xác định kết nái thāc hiện lệnh;

Command, đây là dạng câu lệnh cÁp nhÁt cơ sở dÿ liệu (xố /sửa) nên chỉ trả về sá dịng bị ảnh hưởng mà khơng trả về dịng dÿ liệu nào.

tượng Command.

như trên, connection là đái tượng kết nái truyền vào cho đái tượng Command.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

o New(cmdText as String, connection as SqlConnection, transaction as SqlTransaction): Trong đó cmdText, connnection như trên, Transaction: là

2.2.2 Khởi tạo đái tượng Command

SqlCommand cmd;

String SQL_Cmd==Select * from SinhVien=; Cmd = new SqlCommand(SQL_Cmd, Conn);

SqlCommand cmd; SqlCommand cmd = new();

cmd.Connection= Conn; cmd.CommandText=SQL_Cmd;

<b>Các thuác tính cÿa lßp Command </b>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

Các thuộc tính Mơ tả

tượng Command có nên thāc hiện lên trên một ô control Windows Form Designer hay

phải để ý là đái tượng transaction cũng được

như đái tượng command.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

UpdatedRowsource Thuộc tính này lấy hoặc đặt, để kết quả thi

tính này sẽ mang một trong nhÿng giá trị cāa enumeration

Các bước thāc hiện:

Bước 1: Thāc hiện kết nái CSDL. Bước 2: Khởi tạo đái tượng Command Bước 3: Thāc thi

<b>Ví dā: Sử dÿng đái tượng Command để đếm sá khách hàng. </b>

QuanLyBanHang.

command.CommandText = "Select COUNT(*) From KhachHang";

int Sokhachhang =(int) command.ExecuteScalar(); MessageBox.Show("Total: < + Sokhachhang);

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

Khi dùng một lệnh SQL select, bạn lấy được một dÿ liệu từ database để hiển thị. Để làm được điều này với SqlCommand, bạn cần dùng phương thăc

ExecuteReader để trả về một đái tượng SqlDataReader.

SqlCommand cmd = new SqlCommand("select * from KhachHang", conn);

SqlDataReader rdr = cmd.ExecuteReader();

Để chèn dÿ liệu vào database, dùng phương thăc ExecuteNonQuery() cāa đái tượng SqlCommand. Đoạn code sau cho thấy cách chèn dÿ liệu vào một bảng trong database:

string insertString = @"

insert into MonHoc (MaMh, TenMh, LT, TH) values (8003', 8LÁp Trình CSDL8,30,30)";

<small>SqlCommand cmd = new SqlCommand(insertString, conn); </small>

cmd.ExecuteNonQuery();

Phương thăc ExecuteNonQuery cũng được dùng để cÁp nhÁt dÿ liệu, như đoạn mã sau:

string updateString = @"

update MonHoc set Tenmh= 8LÁp Trình Cơ Sở Dÿ Liệu9 where MaMh= '0039=;

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

- Tạo mới đái tượng command với command text <small>SqlCommand cmd = new SqlCommand(updateString); </small>

Chúng ta cũng có thể xóa dÿ liệu bằng phương thăc ExecuteNonQuery().

ExecuteNonQuery():

string deleteString = @"delete from Monhoc where Mamh= 8003'";

Gán đái tượng SqlParameter vào property Parameters cāa đái tượng SqlCommand.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

Bước đầu tiên là tạo một câu lệnh chăa các parameter placeholder (tên cāa

trong tên cāa parameter như sau:

SqlCommand cmd = new SqlCommand(<select * from Customers where city = @City=, conn);

parameter, @City. Ví dÿ này dùng một parameter, nhưng bạn có thể có nhiều

nghĩa một SqlParameter cho parameter @City trong phần trước:

SqlParameter param= new SqlParameter(); param.ParameterName = <@City=; param.Value = inputCity;

Lưu ý: Property ParameterName cāa đái tượng SqlParameter phải được viết đúng

định giá trị cho các parameter. Khi đái tượng SqlCommand được thāc thi, parameter sẽ được thay thế bằng giá trị cāa nó.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

SqlCommand biết về SqlParameter bằng cách gán đái tượng SqlParameter cho

điều này:

Đái tượng SqlParameter là tham sá trong phương thăc Add() cāa property

SqlCommand.

<b>2.3. Đái t°ÿng DataReader </b>

tên gọi, chúng takhơng thể dùng nó để ghi dÿ liệu.

forward-only trong một thă tā nhất định. Mỗi lần đọc một vài dÿ liệu, chúng ta phải lưu nó nếu cần thiết bởi vì bạn khơng thể quay trở lại và đọc nó một lần nÿa.

khơng thể di chuyển trāc tiếp đến các dịng dÿ liệu ở vị trí bất kì và khơng thể ghi vào dÿ liệu ngn. Do đó, nếu bạn chỉ yêu cầu đọc một nhóm dÿ liệu một lần và cần phương pháp nhanh nhất, DataReader là lāa chọn tát nhất.

DataReader được sử dÿng để chăa kết quả trả về từ đái tượng Command

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

FieldCount: trả về sá trường có trong record hiện hành.

hay khơng.

lấy các giá trị tại cột đang xét tùy vào kiểu.

<nguyên thāy= (kiểu dÿ liệu gác cāa Database).

2.3.2 NhÁn kết quả trả về từ Command

tượng ADO.NET khác. Chúng ta phải gọi phương thăc ExecuteReader() cāa một đái tượng SqlCommand:

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

SqlDataReader trả về dÿ liệu qua một luãng liên tÿc. Để đọc dÿ liệu, chúng ta phải

Để đọc lại dịng đó, bạn cần phải tạo một thể hiện mới cāa SqlDataReader và đọc

Phương pháp điển hình để đọc từ luãng dÿ liệu trả về bởi SqlDataReader là lặp qua

while (rdr.Read()) {

// get the results of each column string Mamh = (string)rdr[<MaMh"]; string TenMh= (string)rdr["TenMh"]; string LT = (string)rdr[<LT"];

string TH = (string)rdr[<TH"]; // print out the results

Console.Write("{0,-25}", MaMh); Console.Write("{0,-20}", TenMh); Console.Write("{0,-25}", LT);

Console.Write("{0,-25}", TH); Console.WriteLine();

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

}

<b>2.4. Đái t°ÿng DataAdapter và DataSet </b>

DataAdapter là đái tượng làm trung gian lấy dÿ liệu về cho DataSet, để DataSet thāc

DataSet được lưu trên bộ nhớ, sau đó sẽ sử dÿng dÿ liệu trên DataSet.

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

Sử dÿng đái tượng với dÿ liệu SQL: using System.Data.SqlClient;

SqlDataAdapter <TênBiến> = new SqlDataAdapter ();

string strSQL = "Select * From SinhVien=;

SqlDataAdapter da = new SqlDataAdapter (strSQL,conn);

DataAdapter và đổ vào DataSet.

string strSQL = "Select * From KhachHang";

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<i>//Tạo DataAdapter và lấy dữ liệu từ bảng KhachHang SqlDataAdapter adapter = </i>

new SqlDataAdapter(strSQL, conn); OpenConnection(); DataSet ds = new DataSet();

<i>//Đổ dữ liệu từ DataAdapter và DataSet </i>

adapter.Fill(ds); conn.Close(); 2.4.3 Đái tượng DataSet

DataSet chỉ chăa dÿ liệu chă không tương tác với nguãn dÿ liệu. Thay vào đó,

được hồn thành. Ví dÿ, SqlDataAdapter thāc hiện các tác vÿ sau, khi đổ dÿ liệu vào DataSet:

Đổ dÿ liệu vào DataSet (Fill) Đóng kết nái

DataRow, …

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

o Là phần cơ sở dÿ liệu được lưu trÿ trong bộ nhớ:

Relational database, Hierarchical.

DataSet và DataReader:

<b>DataColumn</b>: Đại diện cho một cột trong bảng

<b>DataRow: </b>Đại diện cho một dòng (bản ghi)

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

2.4.4 Sử dÿng DataSet

vào DataGridView.

DataSet ds;

private void OpenConnection() {

QuanLyBanHang; UID=sa; PassWord=''";

conn = new SqlConnection(connectionString); conn.Open(); }

DataGridView.

string strSQL = "Select * From KhachHang";

OpenConnection();

<i>//Đọc dữ liệu vào DataAdapter </i>

SqlDataAdapter adapter = new SqlDataAdapter(strSQL, conn);

<i>//Đổ dữ liệu vào DataSet </i>

DataSet dsKhachHang = new DataSet(); adapter.Fill(dsKhachHang);

= dsKhachHang.Tables[0]; conn.Close();

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<i>//Hiển thị dữ liệu từ DataSet ra DataGridView gvwKhachHang.DataSource = </i>

Sau khi thay đổi được thāc hiện trên dÿ liệu, bạn sẽ cần ghi lại vào database. Dòng

các thay đổi vào database.

Phương thăc Update() trên được gọi trên thể hiện cāa SqlDataAdapter có tham sá đầu tiên là chính đái tượng gọi phương thăc. Tham sá thử hai cāa phương thăc

bằng chuỗi kết nái connectionString.

hiển thị lên giao diện và lÁp trình các chăc năng thao tác trên dÿ liệu như Thêm, cÁp nhÁt, xóa dÿ liệu. Thāc hiện trên bảng Lớp và sinh viên.

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<b>BÀI 3: MƠ HÌNH MVC (MODEL – VIEW – CONTROLLER) Māc tiêu: </b>

<b>3.1. Gißi thißu mơ hình MVC </b>

người phát triển tách một ăng dÿng thành 3 thành phần chính:

năng kiểm tra tính hợp lệ cāa dÿ liệu.

đến cho ăng dÿng, làm nhiệm vÿ điều phái công việc giÿa View và Model.

dàng hơn.

<b>¯u điểm </b>

nhóm chuyên mơn khác nhau

thay đổi nhưng có thể được cơ lÁp từng lớp, hoặc chỉ ảnh hướng đến lớp ngay gần

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

Mở rộng: việc thêm chăc năng vào từng lớp sẽ dễ dàng hơn.

<b>Nh°ÿc điểm </b>

<b>3.2. Ki¿n trúc mơ hình MVC </b>

− Models là các thành phần có nhiệm vÿ:

người dùng sẽ thơng qua View để kiểm tra ở Model trước khi lưu vào CSDL. Việc truy xuất, xác nhÁn và lưu dÿ liệu là phần việc cāa Model.

− Views

qua giao diện

− Controllers

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

o Là các thành phần xử lý tương tác với người dùng, làm việc với Model, chọn

<b>Đặc điểm cÿa mơ hình MVC </b>

− Mơ hình MVC đã chia ăng dÿng thành các thành phần Model, View và Controller nên người phát triển có thể tạo ra nhiều View và nhiều Controller cho các Model mà không phải đái mặt với việc thay đổi trong thiết kế Model.

− Đái với nhÿng người mới thì việc xây dāng ăng dÿng dāa trên mơ hình MVC phăc tạp và lãng phí vì cơng việc này như là xây dāng một dā án lớn, tuy nhiên

− Cho phép sửa code mà không ảnh hưởng nhiều đến các thành phần khác. − Cho phép làm việc nhóm trở nên dễ dàng hơn vì mỗi nhóm sẽ làm việc dāa trên

− Nhóm View: chịu trách nhiệm về xây dāng giao diện tương tác với người dùng − Nhóm Model: chịu trách nhiệm về việc xây dāng các lớp xử lý trên dÿ liệu − Nhóm Controller: có cái nhìn tổng thể về các luãng cāa ăng dÿng, quản lý các

<b>3.3. Lßp Models </b>

Để kết nái và truy xuất với cơ sở dÿ liệu SQL Server. Nếu chúng ta viết code

hàng ngàn dòng.

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<small>using System.Data; </small>

<small>using System.Data.SqlClient; public class Database </small>

<small>{ </small>

<small>#region "Khai báo bi¿n thành viên " #endregion #region "Danh sách các thußc tính " #endregion #region "Nhóm hàm đóng mở k¿t nßi" #endregion #region "Nhóm hàm truy xu¿t dÿ liệu" #endregion } </small>

<small>using System.Data; </small>

<small>using System.Data.SqlClient; </small>

trình.

<small>protected static string _connectionString; public static string ConnectionString { </small>

<small>get{ return _connectionString;} set{ _connectionString = value;} } </small>

Đãng thời ta cần khai báo các biến để thāc hiện thao tác trên cơ sở dÿ liệu bao gãm: <small>protected SqlConnection cnn; </small>

<small>protected SqlDataAdapter adapter; </small>

</div>

×