CH
NG VII:
Ữ Ệ
ƯƠ Ế K T GÁN D LI U
Lý thuyết : 3 tiết Thực hành 12 tiết
Data Controls
DataGrid=Table(đ ng đ Repeater DataList GridView
ộ ượ ạ c t o trên server)
ủ Các properties c a Data Controls
Properties
DataList DataGrid
Column Layout(sắp xếp theo cột)
X
Paging(Hiển thị số trang)
X
Select/Edit/Delete
X
X
Sort
X
Style Properties(Kiểu cách)
X
X
Table Layout(Hiển thị kiểu Bảng)
X
Template(Sử dụng khuôn mẫu)
X
X
ữ ệ ừ ả ấ
DataGrid ộ ạ Ý nghĩa: Cung c p m t d ng b ng tính d li u t
ộ ể ự ộ
ộ ặ ườ ạ đ ng t o ho c t
ng minh
data source G m t p các c t, m t header, m t footer. ậ ộ ồ Các c t có th t ộ
ộ Thu c tính:
Student ID 03CDTH892 ……. 03CDTH632 HeadText DataField ……. DataField
Properties
Descriptions
AutoGenerateColumns
Tạo column tự động()
Column(Design & Coding)
• Bound Column
Cột dữ liệu
• Button Column
Cột dạng Button
• HyperLink Column
Cột dạng Liên Kết
•
Template Column
Cột tự thiết kế
EditItemStyle
Định dạng cho Item
Header Style(Show Footer: true)
Định dạng Header
Footer Style(Show Header: true)
Định dạng Footer
GridLines
Hiển thị dạng lưới
Ví d :ụ ạ
ề
ể
T o đi u khi n (Design)
ộ
Ràng bu c vào DataReader/Dataset: (Coding) dgAuthors.DataSource = ds.Table[0]; dgAuthors.DataSource = ds.Table[0]; dgAuthors.DataBind(); dgAuthors.DataBind();
dgAuthors.DataSource = dr; dgAuthors.DataSource = dr; dgAuthors.DataBind(); dgAuthors.DataBind();
Data Grid – Ví dụ
ử ụ
DataGrid Editing S d ng EditCommandColumn
EditItemIndex (1 >không có
ỉ ệ ượ
Thu c tính ộ dòng nào đ
ế ị
ự ứ ệ c hi u ch nh) EditCommandColumn hi n th 3 liên k t ể ng 3 s ki n: EditCommand, ng
ươ t UpdateCommand, CancelCommand
DataGrid Editing
DataGridCommandEventArgs ch a thông
ứ
ẽ ượ ệ tin c a dòng s đ c hi u ch nh
Thu c tính DataKeyField
ỉ ế ậ thi t l p khóa
ủ ộ chính
S ki n UpdateCommand
ự ệ ấ ậ
ể , truy xu t t p các DataKeys đ thao tác trên khóa chính
ự ệ DataGrid các s ki n
OnEditCommand=“FunctionEdit" OnCancelCommand=“FunctionCancel“ OnPageIndexChanged=“FunctionPage" OnDeleteCommand=“FunctionDelete" OnItemCommand=“FunctionCommand"
ệ
ỉ
ữ ệ Hi u ch nh d li u DataGrid
ỉ
ệ
ệ
base.OnLoad(e); }
gd1.EditItemIndex = (int)e.Item.ItemIndex;
Hi u ch nh DataGrid – Mã l nh protected override void OnLoad(EventArgs e) { if (!IsPostBack) BindGrid(); public void gd1_Edit(object src, DataGridCommandEventArgs e) { BindGrid();} public void gd1_Cancel(object src, DataGridCommandEventArgs
e) { gd1.EditItemIndex = 1;
BindGrid();
}
ỉ
ệ
ệ Hi u ch nh DataGrid – Mã l nh (tt)
public void BindGrid() ế ố { // k t n i; OleDbDataAdapter da = new OleDbDataAdapter("select * from
Employees", dsn);
DataSet ds = new DataSet(); da.Fill(ds, "Employees"); gd1.DataSource=ds; gd1.DataBind(); }
ủ
ể
ặ
Đ c đi m khác c a DataGrid
ế
ệ
Tùy bi n giao di n DataGrid
ButtonColumn: hi n th nút nh n nh m th c ể
ự ấ ằ ị
ộ ệ thi m t l nh nào đó.
Thuộc tính AllowSorting: hi n th tiêu
ể ị
ư ộ ế ề ộ đ c t nh m t siêu liên k t.
Thuộc tính SortField : ch ra field đ
ỉ ượ c
ế ắ s p x p.
ự
ử ụ Th c hành: S d ng DataGrid
ộ OleDbConnection ộ OleDbCommand DataReader
ủ ộ
T o m t ạ T o m t ạ T o a ạ Kéo m t ộ DataGrid vào Web Form Ràng bu c DataSource c a DataGrid vào DataGrid
Repeater
Ý nghĩa:
Ràng bu c d li u t ị ữ ệ ự
ể
Templates:
ầ ử ộ ữ ệ ừ th d li u d a trên các ph n t danh sách các item. Hi n HTML
DataBinder
ứ
ể
ộ
Phân tích và đánh giá bi u th c ràng bu c
ữ ệ d li u Tính toán bi u th c ràng bu c d li u đ rút
ữ ệ ứ ể ể ộ
ữ ệ
ả ề ố ượ Object
ng ử ụ trích d li u đúng trong template Container.DataItem tr v đ i t DataBinder.Eval() là hàm tĩnh s d ng
Reflection
Không quan tâm đ n ki u c a ngu n d li u
ữ ệ ủ ể ế ồ
(data source)
DataBinder – Ví dụ
"Name") %>
<%# DataBinder.Eval(Container.DataItem,
"Age","{0:2d}") %>
A Repeater control in use
<%# DataBinder.Eval(Container.DataItem, "Name") %> is a
<%# DataBinder.Eval(Container.DataItem, "Breed") %>
and looks like this:
/>
DataList
ị ữ ệ ừ
ể
ử ụ DataList hi n th d li u t
data
S d ng source S d ng khi hi n th d li u d ng danh sách
ị ữ ệ ạ
ể d ng Table) (t
ử ụ ươ ơ ng t ả
ấ
ự ạ Đ n gi n h n DataGrid ơ Ít nh t có ItemTemplate M i ỗ template có dáng riêng
ể ki u (HeaderStyle và ItemStyle)
DataList – Ví dụ
/
>
Name: <%# DataBinder.Eval(Container.DataItem, "Name")
%>
Breed: <%# DataBinder.Eval(Container.DataItem, "Breed") %>
ữ ệ ừ
ộ
Ràng bu c d li u t
Data Reader
ộ
Thi
t l p thu c tính
Mô tảMô tảMô tảMô tả
Nguồn dữ liệu
Nguồn dữ liệu
ế ậ
Thuộc tính
Thuộc tính
Thuộc tính
Thuộc tính
DataSource
DataSource
Field trong DataTable được hiển thị
Field trong DataTable được hiển thị
Field trong DataTable trở thành giá trị của item
Field trong DataTable trở thành giá trị của item
ứ
ươ
ng th c DataBind
DataTextFiel
DataTextFiel
d
d
DataValueFi
DataValueFi
eld
eld
ọ
G i ph
Id.DataSource = dr;
Id.DataSource = dr;
dgEmp.DataBind();
dgEmp.DataBind();
ể
ề
ọ
Minh h a: Đi u khi n DataGrid
ử ụ
ế ậ
S d ng AutoFormat
ề ộ
Thi
t l p Tiêu đ c t
Phân trang
ế
ắ
S p x p
Dataset là gì?
DataSet
DataTable
DataTable
DataTable
OleDbDataA
OleDbDataA
dapter
dapter
Bộ nhớ
Thiết bị lưu trữ
OleDbConnec
OleDbConnec
tion
tion
OleDbDataAdap
OleDbDataAdap
ter
ter
OleDbConnec
OleDbConnec
tion
tion
OleDb Database
OleDb Server
2000
ậ ữ ệ
ớ
1. Yêu cầu từ Client
Database
Database
2. Tạo đối tượng kết nối OleDbConnection và OleDbDataAdapter
Truy c p d li u v i ADO.NET
1111
2222
3. Điền dữ liệu vào DataSet từ
3333
OleDbConn
ection
Web
Web
server
server
DataAdapter, đóng kết nối
4. Trả DataSet cho Client
OleDbDataA
dapter
4444
5. Client thao tác dữ liệu
5555
6. Cập nhật DataSet
6666
7. Sử dụng
7777
DataSet
OleDbDataAdapter để
mở OleDbConnection,
cập nhật cơ sở dữ liệu và
đóng kết nối
List-
List-
Bound
Bound
Control
Control
Client
Client
Review
Introduction to Using ADO.NET
Connecting to a Database
Accessing Data with DataSets
Using Multiple Tables
Accessing Data with DataReaders
ạ
ơ ở ữ
ế ố ế
Bài: T o k t n i đ n C s d
ử ụ
ạ
ng DataAdapter
ế ố ế
ạ
ạ
li uệ
S d ng Server Explorer t o Connection
ố ượ
Mô hình đ i t
ọ
Minh h a: K t n i đ n CSDL
ộ
T o m t DataSet
ọ
Minh h a: t o DataSet
ạ
ơ ở ữ
ế ố ế
Bài: T o k t n i đ n C s d
li uệ
ứ
ự
ướ ể ạ
ế ố
c đ t o k t n i,
ử ụ
T nghiên c u.
ầ
Yêu c u: Trình bày các b
ấ ữ ệ
l y d li u – s d ng MS Visual.Net
Name: <%# DataBinder.Eval(Container.DataItem, "Name") %>
Breed: <%# DataBinder.Eval(Container.DataItem, "Breed") %>
ữ ệ ừ
ộ Ràng bu c d li u t
Data Reader
ộ
Thi
t l p thu c tính
Mô tảMô tảMô tảMô tả
Nguồn dữ liệu Nguồn dữ liệu
ế ậ Thuộc tính Thuộc tính Thuộc tính Thuộc tính DataSource DataSource
Field trong DataTable được hiển thị Field trong DataTable được hiển thị
Field trong DataTable trở thành giá trị của item Field trong DataTable trở thành giá trị của item
ứ
ươ
ng th c DataBind
DataTextFiel DataTextFiel d d DataValueFi DataValueFi eld eld ọ G i ph
Id.DataSource = dr; Id.DataSource = dr; dgEmp.DataBind(); dgEmp.DataBind();
ể
ề
ọ
Minh h a: Đi u khi n DataGrid
ử ụ
ế ậ
S d ng AutoFormat ề ộ Thi t l p Tiêu đ c t Phân trang ế ắ S p x p
Dataset là gì?
DataSet
DataTable
DataTable
DataTable
OleDbDataA OleDbDataA dapter dapter
Bộ nhớ
Thiết bị lưu trữ
OleDbConnec OleDbConnec tion tion
OleDbDataAdap OleDbDataAdap ter ter
OleDbConnec OleDbConnec tion tion
OleDb Database
OleDb Server 2000
ậ ữ ệ
ớ
1. Yêu cầu từ Client
Database Database
2. Tạo đối tượng kết nối OleDbConnection và OleDbDataAdapter
Truy c p d li u v i ADO.NET 1111 2222
3. Điền dữ liệu vào DataSet từ 3333
OleDbConn ection
Web Web server server
DataAdapter, đóng kết nối
4. Trả DataSet cho Client
OleDbDataA dapter
4444 5. Client thao tác dữ liệu 5555 6. Cập nhật DataSet 6666 7. Sử dụng 7777
DataSet
OleDbDataAdapter để mở OleDbConnection, cập nhật cơ sở dữ liệu và đóng kết nối
List- List- Bound Bound Control Control
Client Client
Review
Introduction to Using ADO.NET
Connecting to a Database
Accessing Data with DataSets
Using Multiple Tables
Accessing Data with DataReaders
ạ
ơ ở ữ ế ố ế Bài: T o k t n i đ n C s d
ử ụ
ạ
ng DataAdapter
ế ố ế
ạ
ạ
li uệ S d ng Server Explorer t o Connection ố ượ Mô hình đ i t ọ Minh h a: K t n i đ n CSDL ộ T o m t DataSet ọ Minh h a: t o DataSet
ạ
ơ ở ữ ế ố ế Bài: T o k t n i đ n C s d li uệ
ứ
ự
ướ ể ạ
ế ố
c đ t o k t n i,
ử ụ
T nghiên c u. ầ Yêu c u: Trình bày các b ấ ữ ệ l y d li u – s d ng MS Visual.Net