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

Bài giảng Lập trình website ASP.NET: Phần 2 - Trường ĐH Công nghiệp Quảng Ninh

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 (4.29 MB, 62 trang )

Bài Giảng Mơn Lập Trình Website ASP.Net

Chương 4

CÁC ĐIỀU KHIỂN LIÊN KẾT DỮ LIỆU


Sử dụng các điều khiển GridView, Data List và Repeater để hiển thị dữ liệu.

I. Điều khiển GridView
GridView là một điều khiển khá linh hoạt và hiệu quả trong việc hiển thị, định dạng và
thao tác với dữ liệu. Bên cạnh đó, chúng ta có thể thực hiện sắp xếp dữ liệu, thực hiện phân
trang với sự hỗ trợ khá tốt của VS .Net trong quá trình thiết kế.
1. Tạo GridView vào trang
Kéo Control GridView vào trang

Kết nối nguồn dữ liệu
Chèn them cột mới
Điều chỉnh các cột
Tạo các cột tùy biến
2. Định dạng tự động
Thực hiện chọn những mẫu định dạng có sẳn quy định về khung viền màu nên bằng
cách Chọn Auto Format từ khung DataGrid Task

3. Kết nối nguồn dữ liệu
Thực hiện kết nối nguồn dữ liệu với cơ sở dữ liệu Access, SQLServer, . .


Trong cửa sổ DataGrid Task tại mục Choose Data Source chọn : New Data Source

Biên sọan: Dương Thành Phết



Trang 78


Bài Giảng Mơn Lập Trình Website ASP.Net

o Với CSDL Access
Với CSDL Access

Tìm chọn tập tin CSDL Access

Xác định nguồn dữ liệu từ Table, Quyery hay câu lệnh truy vấn có thể chỉ định
điều kiện lọc dữ liệu và sắp xếp.

Biên sọan: Dương Thành Phết

Trang 79


Bài Giảng Mơn Lập Trình Website ASP.Net

Khai báo tham số điều kiện

Chỉ định sắp xếp

Chọn Test Query để kiểm tra kết quả nguồn dữ liệu.  Chọn Finish để hòan
thành
o Với CSDL SQLServer

Biên sọan: Dương Thành Phết


Trang 80


Bài Giảng Mơn Lập Trình Website ASP.Net

Với CSDL SQLServer 2000/2005

Tạo kết nối CSDL mới

Khai báo các thông số và chọn CSDL cần kết nối

Biên sọan: Dương Thành Phết

Trang 81


Bài Giảng Mơn Lập Trình Website ASP.Net

Kiểm tra kết quả kết nối



Chọn Ok



Xác định nguồn dữ liệu từ Table, Quyery hay câu lệnh truy vấn có thể chỉ
định điều kiện lọc dữ liệu và sắp xếp.


Khai báo tham số điều kiện

Chỉ định sắp xếp

Biên sọan: Dương Thành Phết

Trang 82


Bài Giảng Mơn Lập Trình Website ASP.Net

-

Chọn Test Query để kiểm tra kết quả nguồn dữ liệu.  Chọn Finish để hòan thành

Thi hành xem kết quả:

4. Thêm cột


Trong cửa sổ DataGrid Task chọn : Add New Column



Chọn Loại field cần tạo : BoundField



Khai báo tiêu đề côt : Header Text




Chỉ định tên field dữ liệu: DataField



Ok hòan thành

Biên sọan: Dương Thành Phết

Trang 83


Bài Giảng Mơn Lập Trình Website ASP.Net

5. Hiệu chỉnh, Tạo mới các cột


Trong cửa sổ DataGrid Task chọn : Edit Column



AvailableFields: Chọn lọai Field liên kết dữ liệu
o BoundField: Cột có liên kết với nguồn dữ liệu dạng Textbox.
o Checkbox Field: Cột có liên kết với nguồn dữ liệu dạng Checkbox.
o Hyperlink Field: Cột có liên kết dữ liệu dạng liên kết.
o Button Field: Cột dạng nút lệnh
o CommandField: Cột dạng nút lệnh đã được thiết kế sẵn. Điều khiển
GridView cung cấp cho chúng ta 3 loại cột dạng này:



Select: Nút lệnh chọn dòng dữ liệu



Edit, Cancel, Update: Các nút lệnh hỗ trợ chức năng cập nhật dữ
liệu trực tiếp trên lưới.



Delete: Nút lệnh xóa dịng dữ liệu

Chúng ta sẽ có dịp tìm hiểu kỹ hơn về các nút lệnh này trong phần
Cập nhật dữ liệu trực tiếp trên lưới.
Biên sọan: Dương Thành Phết

Trang 84


Bài Giảng Mơn Lập Trình Website ASP.Net

o TemplateField: Cột do người dùng tự thiết kế. Đây là loại cột có khả năng
làm việc khá linh họat.
Ví dụ bạn cần hiển thị danh sách khách hàng. Tại cột Phái, bạn
muốn hiển thị dạng Nam/Nữ. Chúng ta sẽ tìm hiểu sâu hơn về Template
Column ở phần sau.


BoundColumn properties: Qui định thông tin chi tiết cho các cột
o HeaderText, Footer Text: Thông tin tiêu đề trên/dưới của cột

o Header Image: Hình hiển thị trên tiêu đề cột (thay thế thông tin tiêu đề cột - Header
Text).
o Sort Expression: Biểu thức sắp xếp của cột.
o Visible: Qui định cột có được hiển thị hay khơng.
o DataField: Qui định tên field hay tên thuộc tính của đối tượng dữ liệu cần hiển thị.
o Data formatting expression: Biểu thức định dạng dữ liệu.
Mẫu định dạng: {0:<chuỗi định dạng>}. Ví dụ:
+ Định dạng số: {0:000.00}, {0:0.##}
+ Định dạng ngày giờ: {0:dd/MM/yyyy}, {0:hh/mm/ss tt}



Convert this Field into a Template Column: Chuyển cột hiện hành thành cột dạng Template
Column.

6. Thiết lập các thuộc tính định dạng lưới
Để thực hiện các thao tác thiết lập các thuộc tính, chúng ta chọn GridView  Properties.


Hiện / Ẩn : Header / Footer - Phần đầu và chân của GridView

o Show header: Qui định dịng tiêu đề trên có được phép hiển thị hay khơng. (mặc
định là có hiển thị dịng tiêu đề)
o Show footer: Qui định dịng tiêu đề dưới có được phép hiển thị hay không. (mặc
định là không hiển thị dòng tiêu đề dưới)


Định dạng dòng Header/Footer: HeaderStyle / FooterStyle




Định dạng dòng dữ liệu lẽ/chẵn: RowStyleAlternatingRowStyle

Biên sọan: Dương Thành Phết

Trang 85


Bài Giảng Mơn Lập Trình Website ASP.Net



Sắp xếp: AllowSorting

Allow sorting: Có cho phép sắp xếp dữ liệu hay khơng. (mặc định là không cho
phép sắp xếp)


Phân trang: AlowPaging

o Định dạng cho phân trang


Page size: Qui định số dòng của mỗi trang.



Possition: Qui định vị trí hiển thị của bộ nút di chuyển. Ở phía trên thanh
tiêu đề, ở phía dưới hay cả hai.




Mode: Qui định hình thức hiển thị của bộ nút di chuyển. Hiển thị dạng số
trang hay là các chuỗi ký tự đại diện (Next page/Previous page button text).
Trong trường hợp hiển thị dạng số, Numeric buttons qui định số nút lệnh
được hiển thị tối đa.

Google hiển thị kết quả được phân trang theo dạng số

Biên sọan: Dương Thành Phết

Trang 86


Bài Giảng Mơn Lập Trình Website ASP.Net

II. Điều khiển DataList
1. Sử dụng DataList để hiển thị dữ liệu
Như điều khiển Gridview, điều khiển DataList được sử dụng để hiển thị dữ liệu. Tuy
nhiên, đối với DataList, chúng ta phải tự thiết kế hình thức hiển thị dữ liệu (giống như Template
Column của GridView).

Biên sọan: Dương Thành Phết

Trang 87


Bài Giảng Mơn Lập Trình Website ASP.Net

Sử dụng DataList hiển thị thơng tin sách

Một số thuộc tính cần chú ý của DataList


RepeatDirection: Qui định hướng hiển thị dữ liệu
o Horizontal: Hiển thị dữ liệu theo chiều ngang

o Vertical (mặc định): Hiển thị dữ liệu theo chiều đứng



RepeatColumns: Qui định số cột hiển thị của DataList

Thiết kế hình thức hiển thị cho DataList cũng tương tự như thiết kế cho cột Template
Column của GridView
Chọn Edit Template từ thực đơn ngữ cảnh để thực hiện thiết kế hình thức hiển thị cho
DataList.

Chọn chức năng thiết kế cho DataList
Ghi chú:
Trong quá trình thực hành, để công việc thiết kế được dễ dàng, các bạn thực hiện thiết
kế ở bên ngoài điều khiển DataList. Sử dụng Table để định vị trí hiển thị của các điều khiển.
Sau khi hồn tất cơng việc thiết kế, chúng ta kéo kết quả đã thiết kế vào vị trí cần hiển thị trong
DataList.
Biên sọan: Dương Thành Phết

Trang 88


Bài Giảng Mơn Lập Trình Website ASP.Net


Ví dụ: Hiển thị thông tin sách với DataList

Thiết kế thông tin sách với DataList

Kết quả trên trang Web
III. Điều khiển Repeater
Như 2 điều khiển DataList & DataGrid, điều khiển Repeater cũng được dùng để hiển thị
dữ liệu. Tuy nhiên, để hiển thị dữ liệu, chúng ta phải tự thiết kế hình thức hiển thị thơng qua các
tag HTML.
Điều khiển Repeater có các tag sau:


<HeaderTemplate></HeaderTemplate> (tùy chọn)
Qui định hình thức hiển thị cho tiêu đề. (Chỉ xuất hiện 1 lần, phía trên của điều khiển)



<ItemTemplate></ItemTemplate> (Bắt buộc phải có)
Qui định hình thức hiển thị cho các mục dữ liệu trong điều khiển.



<AlternatingItemTemplate></AlternatingItemTemplate> (tùy chọn)

Qui định hình thức hiển thị cho các mục dữ liệu trong điều khiển. Nội dung được qui
định trong cặp tag này sẽ hiển thị xen kẽ với các nội dung trong cặp tag
<ItemTemplate> </ItemTemplate>


<SeparatorTemplate></SeparatorTemplate> (tùy chọn)


Biên sọan: Dương Thành Phết

Trang 89


Bài Giảng Mơn Lập Trình Website ASP.Net

Qui định hình thức hiển thị giữa các dòng dữ liệu


<FooterTemplate></FooterTemplate> (tùy chọn)
Qui định hình thức hiển thị cho tiêu đề dưới. (Chỉ xuất hiện 1 lần, phía dưới của
điều khiển)

Ví dụ:
Bước 1. Tạo mới điều khiển Repeater: rptChudesach vào trang Web.

Điều khiển rptChudesach trên trang Web
Bước 2. Kết nối và tạo nguồn dữ liệu cho điều khiển từ Table Chude với các cột: MaCD,
Tenchude.
Bước 3:. Chuyển qua xem trang Web dưới dạng HTML
<asp:Repeater ID="rptChudesach" runat="server" DataSourceID="SqlDataSource1">
</asp:Repeater>

Bước 3. Bổ sung các tag sau
<asp:Repeater ID="rptChudesach" runat="server" DataSourceID="SqlDataSource1">
<HeaderTemplate>
<table border="1" cellspacing="0">
<tr>

<td width="60" align="center">
<strong>Mã CĐ</strong>
</td>
<td width="150" align="center">
<strong>Tên chủ đề </strong>
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%# Eval("MaCd")
%>
</td>
<td>
<%# Eval("Tenchude")%>
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr bgcolor="GhostWhite">
<td>
<%# Eval("MaCD")%>
</td>
<td>
<%# Eval("TenChude")%>
</td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>

</table>
</FooterTemplate>
</asp:Repeater>

Bước 4. Xem lại màn hình thiết kế và thực thi kết quả.

Biên sọan: Dương Thành Phết

Trang 90


Bài Giảng Mơn Lập Trình Website ASP.Net

V. Sử dụng DetailView và FormView
Hai điều khiển này cho phép bạn làm việc với một trường dữ liệu đơn tại mỗi thời điểm
Cả hai điều khiển này cho phép bản thay đổi, thêm mới hay xoá dữ liệu như một bản ghi cơ sở
dữ liệu, và nó cho phép bạn chuyển sang trang tiếp theo hay quay lại trang trước thông qua
thiết lập dữ liệu.
1. DetailView
a. Hiển thị dữ liệu với DetailView
DetailView được đưa ra hiển thị như một bảng(<Table>) trong HTML để hiển thị dữ liệu
một bản ghi.
Ví dụ: Trang XemthongtinKH.aspx

b. Sử dụng Fields với điều khiển DetailView
DetailView hỗ trợ tất cả các Field như GridView
o BoundField: cho phép bạn hiển thị giá trị của dữ liệu như Text
o CheckBoxField: hiển thị dữ liệu dưới dạng một CheckBox
o CommandField: hiển thị liên kết cho phép chỉnh sửa, thêm mới, xoá dữ liệu.
o ButtonField: hiển thị dữ liệu như một button(ImageButton, )

o HyperLinkField: hiển thị môt liên kết
o ImageField: hiển thị ảnh
o TemplateField: cho phép hiển thị các đìều khiển tuỳ biến.

c. Xử lý phân trang với điều khiển DetailView
Biên sọan: Dương Thành Phết

Trang 91


Bài Giảng Mơn Lập Trình Website ASP.Net

Để tạo phân trang chỉ định thuộc tính AllowPaging=”true” cho điều khiển DetailView. Với
các thuộc tính định dạng thuộc nhóm thuộc tính: Pagersettings

d. Minh họa:
Trong ví dụ trên bạn liên kết dữ liệu với Table Khachhang đưa vào 5 BoundField và một
CheckBoxField, điền vào dữ liệu với thuộc tính DataField và thiết đặt cho nó tiêu dề với
HeaderText. Tạo phân trang và định dạng trình bày tại góc trên bên phải. Kết xuất của chương
trình

2. DetailView
a. Hiển thị dữ liệu với FormView
FormView được đưa ra hiển thị dữ liệu với các điều khiển tùy biến để hiển thị dữ liệu
một bản ghi. Ví dụ: Trang XemthongtinNXB.aspx

b. Trình bày dữ liệu sử dụng Edit Template
FormView hỗ trợ trình bày dữ liệu dạng tùy biến cho tất cả các Field DataList
o Tạo FormView vào trang và lien kết dữ liệu
o Tại cửa sổ thiết kế chọn Edit Tempalte từ cửa sổ FormView Task


Biên sọan: Dương Thành Phết

Trang 92


Bài Giảng Mơn Lập Trình Website ASP.Net

o Thiết kế trình bày với các Control điều khiển tương tự như khi thiết kế DataList
với các điều khiển tùy biến

c. Xử lý phân trang với điều khiển DetailView
Để tạo phân trang chỉ định thuộc tính AllowPaging=”true” cho điều khiển DetailView. Với
các thuộc tính định dạng thuộc nhóm thuộc tính: Pagersettings

d. Minh họa:
Trong ví dụ trên bạn liên kết dữ liệu với Table NhaXuatBan đưa vào 4 Label, điền vào
dữ liệu với thuộc tính Text cho các File tương tứng và thiết đặt cho nó tiêu dề với HeaderText.
Tạo phân trang và định dạng trình bày tại phía dưới giữa trang
Kết xuất của chương trình

Biên sọan: Dương Thành Phết

Trang 93


Bài Giảng Mơn Lập Trình Website ASP.Net

Chương 5


XỬ LÝ DỮ LIỆU VỚI ADO.NET
I. Tìm hiểu về ADO.NET
Hầu hết ứng dụng hay các website đều cần phải có cơ sở dữ liệu, để lưu trữ dữ liệu, xử
lý thông tin và đưa ra các báo cáo, hỗ trợ tìm kiếm… Khi dữ liệu trở thành trung tâm của ứng
dụng thì cung cấp các chức năng tới người dùng phụ thuộc vào khả năng thao tác dữ liệu, vấn
đề mà người thiết kế và người xây dựng ứng dụng quan tâm khi sử dụng dữ liệu là:


Lưu dữ liệu tập trung



Đảm bảo toàn vẹn dữ liệu



Đảm bảo khả năng truy xuất đồng thời của nhiều người dùng trên dữ liệu



Đảm bảo thời gian hồi đáp ngắn cho mỗi người dùng



Bảo mật dữ liệu



Trao đổi dữ liệu giữa các hệ thống khác nhau


Những vấn đề này được giải quyết dựa vào khả năng của các hệ quản trị cơ sở dữ
liệu(HQT CSDL) và các phần mềm xử lý dữ liệu do HQT CSDL cung cấp.
.Net truy xuất dữ liệu qua ADO.NET, đặc điểm chính của ADO.NET là khả năng làm
việc với dữ liệu không kết nối, dữ liệu được lưu trữ trong bộ nhớ như một csdl thu nhỏ gọi là
dataset, nhằm tăng tốc độ tính tốn, xử lý tính tốn và hạn chế sử dụng tài nguyên trên
Database Server.
Đặc điểm quan trọng thứ 2 là khả năng xử lý dữ liệu chuẩn XML, dữ liệu ở dạng XMl có
thể trao đổi giữa bất kỳ hệ thống nào nên ứng dụng của bạn sẽ có nhiều khả năng làm việc với
nhiều ứng dụng khác.
1. Kiến trúc ADO .Net

Kiến trúc ADO.NET có thể chia làm 2 phần chính:
-

Managed Provider Component: bao gồm các đối tượng như DataAdapter, DataReader,…
giữ nhiệm vụ làm việc trực tiếp với dữ liệu như database, file,…

-

Content Component: bao gồm các đối tượng như DataSet, DataTable,… đại diện cho dữ
liệu thực sự cần làm việc.

Biên sọan: Dương Thành Phết

Trang 94


Bài Giảng Mơn Lập Trình Website ASP.Net

o DataReader là đối tượng mới, giúp truy cập dữ liệu nhanh chóng nhưng forward-only

và read-only giống như ADO RecordSet sử dụng Server cursor, OpenFowardOnly và
LockReadOnly.
o DataSet cũng là một đối tượng mới, không chỉ là dữ liệu, DataSet có thể coi là một
bản sao gọn nhẹ của CSDL trong bộ nhớ với nhiều bảng và các mối quan hệ.
o DataAdapter là đối tượng kết nối giữa DataSet và CSDL, nó bao gồm 2 đối tượng
Connection và Command để cung cấp dữ liệu cho DataSet cũng như cập nhật dữ
liệu từ DataSet xuống CSDL.
2. Minh họa tạo kết nối cơ sở dữ liệu
using System;
using System.Data;
using System.Data.SqlClient;
public partial class vd1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Khai báo và khởi tạo biến Connection
SqlConnection cnn = new SqlConnection("Data Source=(local);
Initial Catalog=QLbansach;User ID=sa;Password=");
//Mở kết nối
cnn.Open();
//Command điều khiển truy vấn sql
SqlCommand cmd = cnn.CreateCommand();
cmd.CommandText = "select HotenKH from Khachhang where MaKH=5";
//lấy về chuỗi giá trị trong cơ sở dữ liệu
string result = (string)cmd.ExecuteScalar();
//đóng kết nối
cnn.Close();
//in giá trị ra màn hình
Response.Write(result);
}

}

Thi hành

Cơ bản các bước thực hiện với database


Bước 1: Tạo kết nối



Bước 2: Mở kết nối dữ liệu



Bước 3: Tạo lệnh điều khiển truy vấn SQL



Bước 4: Thực thi lệnh



Bước 5: Đóng kết nối



Bước 6: in kết quả

Biên sọan: Dương Thành Phết


Trang 95


Bài Giảng Mơn Lập Trình Website ASP.Net

II. Các đối tượng trong ADO.Net
1. Đối tượng Connection
Vai trò của Connection trong ADO.net là tạo kết nối giữa ứng dụng với nguồn dữ
liệu(CSDL)
Data Provider :
o System.Data.Oledb : Sử dụng với Access
o System.Data.SqlClient : Sử dụng với SQLServer
Ứng với mỗi tên miến ta có một connection tương ứng:
o System.Data.Oledb.OledbConnection
o System.Data.SqlClient.SqlConnection
Ngòai ra Ado.net còn hỗ trợ các Data Provider khác như
o System.data.OcracleClient : Dành cho Ocracle
o MicroSoft.data.Odbc : Dành cho dạng kết nối thong qua Odbc Connectionủa Hệ
điều hành
o Microsoft.Data.Sqlxml: Dành cho XML trên Sqlserver
Connection String
Trước khi thực hiện kết nối Connectionần khai báo các thong tin cho Connection
thơng qua thuộc tính Connection String. Cách khai báo thay đổi tùy thuộc vào Data
Provider. Gồm có các thành phần sau:
o Nếu kết nối với CSDL Access
Provider: Khai báo Data Provider Connectionủa Hệ QT CSDL Access
Data Source: Nguồn dữ liệu (Tên CSDL.mdb)
User ID: Tên người dùng
Password : Mật khẩu

Ví dụ: Tạo kết nối với CSDL Access
using System;
using System.Data;
using System.Data.OleDb;
public partial class VD2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Khai báo và khởi tạo biến Connection
String StrCnn="Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=" + Server.MapPath("~/App_Data/QLBansach.mdb");
OleDbConnection cnn = new OleDbConnection (StrCnn);
//Mở kết nối
cnn.Open();
//Command điều khiển truy vấn sql
OleDbCommand cmd = cnn.CreateCommand();
cmd.CommandText = "select HotenKH from Khachhang where MaKH=2";
//lấy về chuỗi giá trị trong cơ sở dữ liệu
string result = (string)cmd.ExecuteScalar();
//đóng kết nối
cnn.Close();
//in giá trị ra màn hình
Response.Write(result);
}
}

Biên sọan: Dương Thành Phết

Trang 96



Bài Giảng Mơn Lập Trình Website ASP.Net

o Nếu kết nối với CSDL SQLServer
Provider: Khai báo Data Provider Connectionủa Hệ QT CSDL SQLServer
Data Source:Tên máy cài đặt SQLServer
Initial Catalog: Tên CSDL
User ID: Tên người dùng
Password : Mật khẩu
Các thuộc tính Của Connection
o DataBase: : Tương ứng với Initial Catalog(SQL) hay tên CSDL muốn làm việc
(Access)
o DataSource: Tương ứng với DataSource Tên máy SQL hay tên CSDL
o Provider: Tương ứng với Provider
o State: Tình trạng kết nối Connectionủa Connection với các giá trị
 Broken: Kết nối đã bị ngắt chỉ xảy ra sau khi đã kết nối
 Closed: Kết nối đã đóng
 Connecting: Đang kết nối
 Executing: Kết nối đang thực hiện một lệnh
 Fetching: Kết nối đang truy xuất dữ liệu
 Open: Kết nối đang mở
Các phương thức
Change Databse: Thay đổi DataBase làm việc
Close : Đóng kết nối sử dụng đóng Connection đang mở
Dispose: Xóa tịan bộ tài ngun liên quan đấn Connection trên vùng nhớ.
Open: Thực hiện kết nối Connectionới các thơng tin đã khai báo trong
ConnectionString
Ví dụ: Kiểm tra kết nối với CSDL SQLServer
protected void Button1_Click(object sender, EventArgs e)
{

//Khai báo và khởi tạo biến Connection
SqlConnection cnn = new SqlConnection("Data Source=;Initial Catalog=QLbansach;User ID=sa;Password=");
//Mở kết nối
cnn.Open();
TextBox1.Text = "State = " + cnn.State; ;
// Thực hiện các câu lệnh SELECT, INSERT, DELETE, UPDATE.
cnn.Close();
//Đóng kết nối
}

Biên sọan: Dương Thành Phết

Trang 97


Bài Giảng Mơn Lập Trình Website ASP.Net

2. Đối tượng Command
Sau khi tạo kết nối với nguồn dữ liệu, mọi thao tác với nguồn dữ liệu đó đều được thực
hiện thơng qua Command. Tùy theo loại Connection đối tượng Command thuộc tên miền như
sau:
System.Data.OleDb.OleDbCommand
System.Data.SqlClient.SqlCommand
Tạo Command
Chúng ta có thể tạo Command thơng qua đối tượng Connection bàng cách:
<Loai command> <Biến Command> As New <Loai command>;
<Biến command>.Connection=<Biến Connection>;
<Biến Command>.CommandText=<Lệnh SQL>;
Hoặc
<Loai Command> <Biến Command> As New <Loại >Command(<Lệnh SQL>);

<Biến Command>.Connection=<Biến Connection>;
Các thuộc tính
CommandText : Lệnh SQL hay tên Stored Procedure muốn thực hiện trên nguồn dữ liệu
CommandType: Giá trị cho biết nội dugn Commandtext là gì:
Text: (Mặc định) là câu lệnh SQL
StoredProcedure: Tên thủ tục
TableDirect: Tên Connectionủa table
VD:
SqlCommand cmd As SqlCommand = New SqlCommand();
cmd.Connection = cnn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select* From Khachhang Where MaKH=2";
Parameters
Lệnh SQL trong commandText có thể sử dụng dấu ? thay cho trị chưa xác định và khi
thực hiện sẽ dùng đối tượng Parameters để truyền gái trị vào dấu ? . Tùy theo Command
Parameter sẽ khai báo từ lớp OledbParameter hay SqlParameter. Cú pháp khai báo sau:
OleDbParameter | SqlParameter <tên Parameter> As
New OleDbParameter | SqlParameter();
OleDbParameter | SqlParameter <Ten Parameter> As
New OleDbparameter | SqlParameter(<Tên>);
OleDbParameter | SqlParameter <Tên parameter> As
New OleDbParameter | SqlParamter(<tên>,<giá>);
Các thuộc tính cần chú ý:
Direction : Giá trị cho biết lọai tham số
Input: (mặc định) Loại tham số đầu vào
InputOutput: Loại tham số đầu vào và ra
Output: Loại tham số đầu ra
Biên sọan: Dương Thành Phết

Trang 98



Bài Giảng Mơn Lập Trình Website ASP.Net

ReturnValue: Loại tham số nhận giá trị trả về Connectionủa một thủ tục
OleDbType / SqlDbType: Kiểu dữ liệu OleDb hay SQLDb Connectionủa tham số.
ParameterName: Tên tham số
Value: Giá trị tham số
Dùng phương thức CreateParameter và Add Command của tập hợp Parameters.
VD: Khi sử dụng OleDbCommand
cmd.CommandText=”Select * From Khachhang Where MaKH=?”;
OleDbParameter Par As OleDbParameter= cmd.CreateParameter();
Par.Value=”KH01”;;
cmd.Parameters.Add(Par);
VD: Khi sử dụng SqlDbCommand
cmd.CommandText=”Select * From Khachhang Where MaKH=@MaKH”;
SqlParameter Par As SqlParameter = cmd.CreateParameter();
Par.ParameterName=”@MaKH”;
Par.Value=”KH01”;
cmd.Parameters.Add(Par);
Đưa tham số vào tập hợp Parameters
VD: Khi sử dụng OleDbCommand
cmd.CommandText=”Select * From BangDiem Where Masv=? And MaMH=?”;
OleDbParameter Par1 As OleDbParameter=
cmd.CreateParameters.Add(“Sinhvien”,OleDbType.Char,4);
Par1.Value=”SV01”
OleDbParameter Par2 As OleDbParameter=
cmd.CreateParameters.Add(“Monhoc”,OleDbType.Char,4);
Par2.Value=”MH01”
VD: Khi sử dụng SqlDbCommand

cmd.CommandText=”Select * From BangDiem Where Masv=@MaSV
and MaMH = @MaMH ”;
SqlDbParameter Par1 As SqlDbParameter=
cmd.CreateParameters.Add(“@MaSV”,SqlType.Char,4);
Par1.Value=”SV01”
SqlDbParameter Par2 As SqlDbParameter=
cmd.CreateParameters.Add(“@MaMH”,SqlType.Char,4);
Par2.Value=”MH01”;
Tạo tham số và đưa vào tập hợp Parameters
VD: Procedure SpKetQuaThi Cần 2 tham số đầu vào: @MaSV , @MaMH và trả
về Điểm thi của Mơn học Connectionủa sinh viên đó. Vì vậy chúng ta Connectionần
truyền 3 tham số: 1 trả về, 2 đưa vào. Tham số trả về phải được truyền cho Command
trước tiên
Biên sọan: Dương Thành Phết

Trang 99


Bài Giảng Mơn Lập Trình Website ASP.Net

cmd.CommandText=”spKetQuaThi”;
cmd.CommandType=CommandType.StoredProcedure;
OleDbParameter ts3 As New OleDbParameter();
ts3.Direction=ParameterDirection.ReturnValue;
ts3.OleDbType=OleDn.OleDbType.Int;
cmd.parameters.Add(ts3);
OleDbParameter ts1 as OleDbParameter=
cmd.Parameters.Add(“@MaSV”,OleDbType.Char,4);
Ts1.Value=”Sv01”;
OleDbParameter ts2 as OleDbParameter=

cmd.Parameters.Add(“@MAMH”,OleDbType.Char,4);
Ts1.Value=”MH01”;
Thực hiện Command
Phương thức ExecuteReader: Phương thức này trả về một đối tượng DataReader để
đọc dữ liệu mỗi lần một dòng với phương thức Read. DataReader đọc dữ liệu trực tiếp từ
nguốn dữ liệu nên phải duy trì kết nối đến khi đọc xong cú pháp.
SqlDataReader <Tên DataReader> As SqlDataReader;
<Tên DataReader> = <tên Command>.ExecuteReader;
VD:

SqlDataReader reader As SqlDataReader;
reader = cmd.ExecuteReader;

Phương thức ExcuteNoneQuery: Dùng để thực thi các phát biểu T-Sql như: Insert,
Update, Delete, Create,…
Phương thức ExcuteScalar: Trả về từ phát biết SQL dạng Select chỉ có một cột một
hàng.
3. Đối tượng Datareader
Là đối tượng truy cập dữ liệu trực tiếp, sử dụng con trỏ phía Server và duy trì kết nối với
Server trong suốt quá trình đọc dữ liệu, DataReader thuộc tên miền
System.data.OleDbDatReader hoặc System.Data.SqlDataRaeder
Các thuộc tính
FieldCout: Số Connectionột trên dịng hiện hành của DataReader
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.
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: Tar3 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.
Biên sọan: Dương Thành Phết

Trang 100


Bài Giảng Mơn Lập Trình Website ASP.Net

4. Đối tượng DataAdapter
Để 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:
-

SelectCommand: Cho phép lấy thông tin từ nguồn dữ liệu về.

-

InsertCommand cho phép thêm dữ liệu vào bảng trong nguồn dữ liệu.

-

UpdateCommand cho phép điều chỉnh dữ liệu của bảng trong nguồn dữ liệu.

-


DeleteCommand cho phép xóa dữ liệu của bảng trong nguồn dữ liệu.

a. Tạo DataAdapter
Khai báo rõ DataAdapter sử dụng theo DataProvider nào: sqlDataAdapter hay
OledbDataAdapter hai lớp này thuộc tên miền:
System.Data.OleDb.OleDbDataAdapter
System.Data.SqlClient.SqlDataAdapter
Cú pháp tạo DataAdapter
New <Loai>DataAdapter();
New <Loai>DataAdapter(<Đối tượng SelectCommand>);
<Đối tượng SelectCommand>: Có sẳn với nội dụng lệnh truy xuất.
New <Loai>DataAdapter(<Lệnh>,<Đối tượng 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.
VD:
OleDbDataAdapter DA As New OleDbDataAdapter();
DA.SelectCommand.CommandText=”Select * From Sinhvien”;
AD.SelectCommand.Connection.ConnectionString=”Provider=MicroSoft.Jet.OleDb.4.0;
Data Source=c:\QuanLySV.mdb”;
b. Các thuộc tín chí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.
c. 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
o DataTable:

Fill(<DataTable>)

o DataSet:
Fill(<DataSet>)
 Dữ liệu lấy về DataSet dưới dạng các
dataTable với tên mặc định là: Table,Table1, Table2. . .:
Biên sọan: Dương Thành Phết

Trang 101


Bài Giảng Mơn Lập Trình Website ASP.Net

o Đổ dữ liệu vào Datset cho bảng DataTable nếu chưa có sẽ tạo mới:
Fill(<DataSet>,<Tên dataTable>)
-

Phương thức trả về mẫu tin lấy về được
Dim DS as New Dataset()
Dim so As Integer
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 they đổi trên bảng trong Dataset vào
nguồn dữ liệu..

5. Đối tượng DataSet
Dataset là một mơ hình CSDL quan hệ thu nhỏ đáp ứng nhu cầu của ứng dụng.
Dataset chứa các bảng (DataTable) các quanhệ (DataRelation) và các ràng buộc
(constraint) Dataset thuộc tên miền: System.Data.Dataset.
a. Khai báo
New System.Data.Dataset()
Hoặc
New System.Data.Dataset(<tên Dataset>)
b. Các phương thức
-

Thêm một bảng vào Dataset
Tables.Add()
Một bảng mới tự động được tạo ra với tên mặc định Table1, Table2 . . .
Tables.Addd(<Tên bảng>)
Một bảng mới tạo ra theo đúng <tên bảng>
Ghi chú: Tên bảng có phân biệt chữ in, thường

-

Xóa bảng ra khỏi Dataset
Tables.Remove(<Tên bảng>)
Xóa bảng ra khỏi tập hợp Table.


-

Kiểm tra bảng có thuộc về Dataset
Tables.Contains(<Tên bảng>)

-

Lấy chỉ số của bảng
Tables.IndexOf(<tên bảng>)

-

Lấy số bảng trong Dataset
Tables.Count

-

Lấy ra một bảng trong Dataset
Tables(<Chỉ số>)

Biên sọan: Dương Thành Phết

Trang 102


×