SlideShare a Scribd company logo
Data Binding
Chương 4
2
Nội dung
 Khái niệm Data Binding
 Simple Data Binding
 Complex Data Binding
 Đồng bộ dữ liệu giữa các control và datasource
 Master – Detail
 Binding Source
 Binding Navigator
3
Khái niệm Data Binding
Data Binding giúp hiển thị dữ liệu trong
Data Source lên control
 Data binding là một giải pháp cho vấn đề liên
kết giữa tập dữ liệu với các controls
 Phân loại: Có 2 loại Data Binding
• Simple Data Binding
• Complex Data Binding
4
Simple Data Binding
 Kết nối 1 property của control (loại property chỉ lưu 1 giá trị
tại 1 thời điểm) với 1 cột (hay property) của data source
 Ví dụ:
• string tenControl.Text
• object tenControl.Tag
• Image picBox.Image
• bool checkBox.Checked
• bool radioButton.Checked
• int trackBar.Value
• …
5
Simple Data Binding
 Cách 1:
DataBinding binding;
binding = new DataBinding("propertyName",
dataSource, "dataMember", true);
tenControl.DataBindings.Add(binding);
tenControl.DataBindings.Add("propertyName",
dataSource, "dataMember", true);
 Cách 2:
6
Complex Data Binding
 Kết nối 1 control có khả năng hiển thị nhiều giá trị
tại 1 thời điểm với 1 cột hay tất cả các cột trong
data source
 Ví dụ:
• DataGridView
• ComboBox
• ListBox
• …
7
Complex Data Binding
 Cách 1
tenControl.DataSource = tenBang;
 Cách 2
tenControl.DataSource = tenDataSet;
tenControl.DataMember = tenBang;
8
Data Binding đến Property
 Data Binding đến thuộc tính Text
tenTextBox.DataBindings.Add("Text", tenBang, "tenCot");
tenLabel.DataBindings.Add("Text", tenBang, "tenCot");
tenButton.DataBindings.Add("Text", tenBang, "tenCot");
tenCheckBox.DataBindings.Add("Text", tenBang, "tenCot");
…
tenTextBox.DataBindings.Add(
"Text", tenDS, “tenBang.tenCot");
tenLabel.DataBindings.Add(
"Text", tenDS, “tenBang.tenCot");
tenButton.DataBindings.Add(
"Text", tenDS, “tenBang.tenCot");
tenCheckBox.DataBindings.Add(
"Text", tenDS, “tenBang.tenCot");
…
9
Data Binding đến Property
 Data Binding đến thuộc tính Tag
tenControl.DataBindings.Add("Tag", tenBang, "tenCot");
tenControl.DataBindings.Add(
"Tag", tenDS, “tenBang.tenCot");
10
Data Binding đến Property
 Data Binding đến thuộc tính Checked
tenCheckBox.DataBindings.Add(
"Checked", tenBang, "tenCot");
tenRadio.DataBindings.Add(
"Checked", tenBang, "tenCot");
…
tenCheckBox.DataBindings.Add(
"Checked", tenDS, “tenBang.tenCot");
tenRadio.DataBindings.Add(
"Checked", tenDS, “tenBang.tenCot");
…
11
Data Binding đến Property
 Data Binding đến thuộc tính Value
tenDateTimePicker.DataBindings.Add(
“Value", tenBang, "tenCot");
tenProcessBar.DataBindings.Add(
“Value", tenBang, "tenCot");
tenTrackBar.DataBindings.Add(
“Value", tenBang, "tenCot");
tenNumricUpDown.DataBindings.Add(
“Value", tenBang, "tenCot");
tenVScrollBar.DataBindings.Add(
“Value", tenBang, "tenCot");
tenHScrollBar.DataBindings.Add(
“Value", tenBang, "tenCot");
…
12
Data Binding đến Property
 Data Binding đến thuộc tính Value
tenDateTimePicker.DataBindings.Add(
"Value", tenDS, "tenBang.tenCot");
tenProcessBar.DataBindings.Add(
"Value", tenDS, "tenBang.tenCot");
tenTrackBar.DataBindings.Add(
"Value", tenDS, "tenBang.tenCot");
tenNumricUpDown.DataBindings.Add(
"Value", tenDS, "tenBang.tenCot");
tenVScrollBar.DataBindings.Add(
“Value", tenDS, "tenBang.tenCot");
tenHScrollBar.DataBindings.Add(
“Value", tenDS, "tenBang.tenCot");
…
13
Data Binding đến DataGridView
 Cách 1
tenGrid.DataSource = tenBang;
 Cách 2
tenGrid.DataSource = tenDataSet;
tenGrid.DataMember = "TenBang";
14
Data Binding đến ComboBox
 Cách 1
tenComboBox.DataSource = tenBang;
tenComboBox.DisplayMember = "tenCot1";
tenComboBox.ValueMember = "tenCot2";
 Cách 2
tenComboBox.DataSource = tenDataSet;
tenComboBox.DisplayMember = "tenBang.tenCot1";
tenComboBox.ValueMember = "tenBang..tenCot2";
15
Data Binding đến ListBox
 Cách 1
tenListBox.DataSource = tenBang;
tenListBox.DisplayMember = "tenCot1";
tenListBox.ValueMember = "tenCot2";
 Cách 2
tenListBox.DataSource = tenDataSet;
tenListBox.DisplayMember = "tenBang.tenCot1";
tenListBox.ValueMember = "tenBang..tenCot2";
Đồng bộ dữ liệu giữa các
control và datasource
17
Đồng bộ dữ liệu giữa control và data source
 Khái niệm
 Cơ chế đồng bộ của .NET 1.x
 Các thao tác của đối tượng
CurrencyManager
18
Đồng bộ dữ liệu giữa control và data source
Khái niệm
 Đồng bộ dữ liệu là khả năng cập nhật tức thì
dữ liệu giữa các control hay giữa các control
và Data source
• Ví dụ:
– Khi nhấn button “Next”, chúng ta thấy các
control đều cập nhập dữ liệu của record kế tiếp
– Khi chọn record bằng listbox, chúng ta thấy các
thông tin liên quan tự động xuất hiện trên các
control khác của cùng form
19
Đồng bộ dữ liệu giữa control và data source
Cơ chế đồng bộ của .NET 1.x
 Khả năng đồng bộ trong .NET 1.x không hiện
thực trong ADO.NET (DataSet, DataView
không có thông tin về record nào đang hiện
trên form)
 Khả năng đồng bộ trong .NET 1.x được hiện
thực trong Windows Form thông qua property
BindingContext và lớp CurrencyManager
20
Đồng bộ dữ liệu giữa control và data source
Cơ chế đồng bộ của .NET 1.x
 Khi chúng ta kết nối các control với một data
source, chương trình tự động tạo ra một đối
tượng thuộc lớp CurrencyManager để theo
dõi vị trí của record trong datasource
 Mỗi data source tương ứng có 1 đối tượng
CurrencyManager
 Windows Form lưu tất cả đối tượng
CurrencyManager vào trong mảng
BindingContext
21
Đồng bộ dữ liệu giữa control và data source
Cơ chế đồng bộ của .NET 1.x
22
Đồng bộ dữ liệu giữa control và data source
Các thao tác của đối tượng CurrencyManager
CurrencyManager cm;
cm = (CurrencyManager)this.BindingContext[tenDataSet,"Bảng"];
 Cách 1
CurrencyManager cm;
cm = (CurrencyManager)this.BindingContext[tenBang];
 Cách 2
23
Đồng bộ dữ liệu giữa control và data source
Các thao tác của đối tượng CurrencyManager
 Lớp CurrencyManager
• Property:
– int Position
– int Count
• Method:
– void AddNew()
– void EndCurrentEdit()
– void CancelCurrentEdit()
– void RemoveAt(int index)
24
Đồng bộ dữ liệu giữa control và data source
Các thao tác của đối tượng CurrencyManager
 Next
• cm.Position++;
 Previous
• cm.Position--;
 First
• cm.Position = 0;
 Last
• vt = cm.Count – 1;
• cm.Position = vt;
25
Đồng bộ dữ liệu giữa control và data source
Các thao tác của đối tượng CurrencyManager
CurrencyManager cm;
cm = (CurrencyManager)this.BindingContext[dataTable];
if (cm.Position < cm.Count - 1)
{
cm.Position++;
}
 Những thao tác cơ bản
CurrencyManager cm;
cm = (CurrencyManager)this.BindingContext[dataTable];
if (cm.Position > 0)
{
cm.Position--;
}
26
Đồng bộ dữ liệu giữa control và data source
Các thao tác của đối tượng CurrencyManager
 Insert
• void cm.AddNew();
 Update
• cm.EndCurrentEdit();
da.Update(dataTable);
 Delete
• index = cm.Position
• cm.RemoveAt(index);
 Cancel
• cm.CancelCurrentEdit();
27
Đồng bộ dữ liệu giữa control và data source
Các thao tác của đối tượng CurrencyManager
 Chú ý quan trọng:
• Data source và data member của các control
phải đồng nhất với nhau
– Hoặc cùng dataset
– Hoặc cùng datatable
• Tốt nhất: nên dùng datatable
Master – Detail
29
Master – detail
 Master – detail: dạng quan hệ 1-n trong cơ
sở dữ liệu
30
Master – detail
 Bước 1: fill dữ liệu
• Fill 2 bảng vào dataset (bao gồm khóa chính và khóa ngoại)
 Bước 2: tạo quan hệ
• DataColumn colMaster =
ds.Tables[“tenMaster"].Columns[“cộtPK"];
• DataColumn colDetail = ds.Tables[“tenDetail"].Columns[“cộtFK"];
• DataRelation relation = new DataRelation(“tenquanhe",
colMaster, colDetail);
• ds.Relations.Add(relation);
31
Master – detail
 Bước 3: (cách 1)
• dataGridViewMaster.DataSource = ds;
• dataGridViewMaster.DataMember = “tenMaster";
• dataGridViewDetail.DataSource = ds;
• dataGridViewDetail.DataMember =
“tenMaster.tenquanhe";
32
Master – detail
 Bước 3: (cách 2)
• dataGridViewMaster.DataSource =
ds.Tables[“tenMaster”];
• dataGridViewDetail.DataSource =
ds.Tables[“tenMaster”];
• dataGridViewDetail.DataMember =
“tenquanhe";
33
Binding Source
 Khái niệm
 Tạo đối tượng Binding Source
 Kết nối control với Binding Source
 Các thao tác của đối tượng BindingSource
34
Binding Source
Khái niệm
 Trong .NET 1.X, chỉ cho phép kết nối trực tiếp
giữa Control đến Data Source
 Trong .NET 2.0, cho phép kết nối giữa
Control và Data Source thông qua đối tượng
trung gian Binding Source
 Ưu điểm khi sử dụng Binding Source
• Dễ dàng thay đổi Data Source của các Control
• Cung cấp nhiều sự kiện và các phương thức
35
Binding Source
Khái niệm
Data
source
Binding
Source
36
Binding Source
Khái niệm
BindingSourceBindingSource
DataSetDataSetDataTableDataTable
DataSourceDataSource
DataMemberDataMember
SimpleSimple
ControlControl
ComplexComplex
ControlControl
ColumnColumn
DataBindingDataBinding
PropertyProperty
Thay đổi nộiThay đổi nội
dung bằngdung bằng
navigatornavigator
BindingNavigatorBindingNavigator
BindingSourceBindingSource
DataSourceDataSource
37
Binding Source
Tạo đối tượng Binding Source
 Cách 1:
BindingSource bs;
bs = new BindingSource();
…
bs.DataSource = dataSource;
bs.DataMember = "dataMember";
 Cách 2:
BindingSource bs;
bs = new BindingSource(dataSource, "dataMember");
38
Binding Source
Kết nối control với Binding Source
 Simple Data Binding
tenControl.DataSource = bs;
//tenControl.DataMember = "tenBang";
 Complex Data Binding
tenControl.DataBindings.Add("propertyName",
bs, "dataMember", true);
39
Binding Source
Các thao tác của đối tượng BindingSource
 Next
• bs.MoveNext();
 Previous
• bs.MovePrevious();
 First
• bs.MoveFirst();
 Last
• bs.MoveLast();
40
Binding Source
Các thao tác của đối tượng BindingSource
 Insert
• object bs.AddNew();
 Update
• bs.EndEdit();
da.Update(dataTable);
 Delete
• void bs.RemoveAt(index);
• void bs.RemoveCurrent();
 Cancel
• bs.CancelEdit();
41
Binding Source
Các thao tác của đối tượng BindingSource
 Property
• int bs.Position
• int bs.Count
• CurrencyManager bs.CurrencyManager
• string bs.Filter
• string bs.Sort
 Method
• void bs.ResetBinding(bool metaDataChanged);
• void bs.ResetCurrentItem();
• void bs.ResetItem(int index);
42
Binding Navigator
 Binding Navigator là 1 phiên bản mới của
ToolStrip trong .NET 2.0 bao bọc các chức
năng: MoveNext, MovePrevious, MoveFirst,
MoveLast, AddNew, RemoveCurrent, …
43
Binding Navigator
 Các bước tạo Binding Navigator
• Bước 1: Kéo Binding Navigator vào Form
• Bước 2: Thiết lập BinddingSource
tenNavigator.BindingSource=tenBindingSource;
44
Tóm tắt chương 4

More Related Content

What's hot

Thuật toán Nhân Bình Phương - demo
Thuật toán Nhân Bình Phương - demoThuật toán Nhân Bình Phương - demo
Thuật toán Nhân Bình Phương - demo
Công Thắng Trương
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tán
Ngo Trung
 
Nhom 16 big data
Nhom 16 big dataNhom 16 big data
Nhom 16 big data
Duy Phan
 

What's hot (20)

Thuật toán Nhân Bình Phương - demo
Thuật toán Nhân Bình Phương - demoThuật toán Nhân Bình Phương - demo
Thuật toán Nhân Bình Phương - demo
 
Hbase, Cách thức lưu trữ và tìm kiếm
Hbase, Cách thức lưu trữ và tìm kiếmHbase, Cách thức lưu trữ và tìm kiếm
Hbase, Cách thức lưu trữ và tìm kiếm
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
 
Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1
 
Bài tập thực hành C#
Bài tập thực hành C#Bài tập thực hành C#
Bài tập thực hành C#
 
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTBài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winform
 
Bài 2 - Công nghệ ADO.NET với C#
Bài 2 - Công nghệ ADO.NET với C#Bài 2 - Công nghệ ADO.NET với C#
Bài 2 - Công nghệ ADO.NET với C#
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tán
 
Nhom 16 big data
Nhom 16 big dataNhom 16 big data
Nhom 16 big data
 
Bài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệuBài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệu
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
 
Cơ sở dữ liệu PTIT slide 5
Cơ sở dữ liệu PTIT slide 5 Cơ sở dữ liệu PTIT slide 5
Cơ sở dữ liệu PTIT slide 5
 
Lựa chọn thuộc tính và Khai phá luật kết hợp trên WEKA
Lựa chọn thuộc tính và Khai phá luật kết hợp trên WEKALựa chọn thuộc tính và Khai phá luật kết hợp trên WEKA
Lựa chọn thuộc tính và Khai phá luật kết hợp trên WEKA
 
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
 
Hệ mật mã Elgamal
Hệ mật mã ElgamalHệ mật mã Elgamal
Hệ mật mã Elgamal
 
Mã hóa đường cong Elliptic
Mã hóa đường cong EllipticMã hóa đường cong Elliptic
Mã hóa đường cong Elliptic
 
Decision tree
Decision treeDecision tree
Decision tree
 
Phân tích mã độc cơ bản - báo cáo thực tập
Phân tích mã độc cơ bản - báo cáo thực tậpPhân tích mã độc cơ bản - báo cáo thực tập
Phân tích mã độc cơ bản - báo cáo thực tập
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
 

Similar to 04 chuong 4 - databinding

Cach su dung databinding
Cach su dung databindingCach su dung databinding
Cach su dung databinding
truong le hung
 
7.databinding
7.databinding7.databinding
7.databinding
Dao Uit
 
7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)
TI Anh
 
Cập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vbCập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vb
ANHMATTROI
 

Similar to 04 chuong 4 - databinding (20)

03 chuong3-datasets-140404114719-phpapp02
03 chuong3-datasets-140404114719-phpapp0203 chuong3-datasets-140404114719-phpapp02
03 chuong3-datasets-140404114719-phpapp02
 
ado.net
ado.netado.net
ado.net
 
Cach su dung databinding
Cach su dung databindingCach su dung databinding
Cach su dung databinding
 
7.databinding
7.databinding7.databinding
7.databinding
 
7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)
 
Cập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vbCập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vb
 
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
 
Ung dung web chuong 6
Ung dung web  chuong 6Ung dung web  chuong 6
Ung dung web chuong 6
 
04 chuong4-capnhatdulieu-140404115156-phpapp02
04 chuong4-capnhatdulieu-140404115156-phpapp0204 chuong4-capnhatdulieu-140404115156-phpapp02
04 chuong4-capnhatdulieu-140404115156-phpapp02
 
04 chuong 4 - cap nhat du lieu
04   chuong 4 - cap nhat du lieu04   chuong 4 - cap nhat du lieu
04 chuong 4 - cap nhat du lieu
 
04 chuong 4 - cap nhat du lieu
04   chuong 4 - cap nhat du lieu04   chuong 4 - cap nhat du lieu
04 chuong 4 - cap nhat du lieu
 
04 ado
04 ado04 ado
04 ado
 
01 chuong1-gioithieuado-140404114504-phpapp01
01 chuong1-gioithieuado-140404114504-phpapp0101 chuong1-gioithieuado-140404114504-phpapp01
01 chuong1-gioithieuado-140404114504-phpapp01
 
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
 
Aspnet 3.5 _02
Aspnet 3.5 _02Aspnet 3.5 _02
Aspnet 3.5 _02
 
Ung dung web chuong 7
Ung dung web  chuong 7Ung dung web  chuong 7
Ung dung web chuong 7
 
Data provider
Data providerData provider
Data provider
 
01 chuong 1 - gioi thieu ado.net va ket noi den csdl
01   chuong 1 - gioi thieu ado.net va ket noi den csdl01   chuong 1 - gioi thieu ado.net va ket noi den csdl
01 chuong 1 - gioi thieu ado.net va ket noi den csdl
 
C# co ban 10
C# co ban 10C# co ban 10
C# co ban 10
 
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
 

More from truong le hung

các bước hack server
các bước hack servercác bước hack server
các bước hack server
truong le hung
 
lập trình di động
lập trình di độnglập trình di động
lập trình di động
truong le hung
 
bài giảng phân tích thiết kệ thống thông tin (hutech)
bài giảng phân tích thiết kệ thống thông tin (hutech)bài giảng phân tích thiết kệ thống thông tin (hutech)
bài giảng phân tích thiết kệ thống thông tin (hutech)
truong le hung
 
Thuc thi menh lenh voi co so du lieu
Thuc thi menh lenh voi co so du lieuThuc thi menh lenh voi co so du lieu
Thuc thi menh lenh voi co so du lieu
truong le hung
 
Tao mot ket noi toi co so du lieu dung c#
Tao mot ket noi toi co so du lieu dung c#Tao mot ket noi toi co so du lieu dung c#
Tao mot ket noi toi co so du lieu dung c#
truong le hung
 
04 chuong 4 - sap xep, tim kiem, loc du lieu
04   chuong 4 - sap xep, tim kiem, loc du lieu04   chuong 4 - sap xep, tim kiem, loc du lieu
04 chuong 4 - sap xep, tim kiem, loc du lieu
truong le hung
 

More from truong le hung (9)

các bước hack server
các bước hack servercác bước hack server
các bước hack server
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
lập trình di động
lập trình di độnglập trình di động
lập trình di động
 
Lập trình android
Lập trình androidLập trình android
Lập trình android
 
bài giảng phân tích thiết kệ thống thông tin (hutech)
bài giảng phân tích thiết kệ thống thông tin (hutech)bài giảng phân tích thiết kệ thống thông tin (hutech)
bài giảng phân tích thiết kệ thống thông tin (hutech)
 
Thuc thi menh lenh voi co so du lieu
Thuc thi menh lenh voi co so du lieuThuc thi menh lenh voi co so du lieu
Thuc thi menh lenh voi co so du lieu
 
Tao mot ket noi toi co so du lieu dung c#
Tao mot ket noi toi co so du lieu dung c#Tao mot ket noi toi co so du lieu dung c#
Tao mot ket noi toi co so du lieu dung c#
 
04 chuong 4 - sap xep, tim kiem, loc du lieu
04   chuong 4 - sap xep, tim kiem, loc du lieu04   chuong 4 - sap xep, tim kiem, loc du lieu
04 chuong 4 - sap xep, tim kiem, loc du lieu
 
02 chuong 2 - lay du lieu theo cach connected
02   chuong 2 - lay du lieu theo cach connected02   chuong 2 - lay du lieu theo cach connected
02 chuong 2 - lay du lieu theo cach connected
 

Recently uploaded

GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdfGIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
LngHu10
 
kjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsb
kjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsbkjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsb
kjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsb
hoangphuc12ta6
 

Recently uploaded (17)

BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
 
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdfGIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdf
 
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdfDS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
DS thi KTHP HK2 (dot 3) nam hoc 2023-2024.pdf
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
 
slide tuần kinh tế công nghệ phần mềm hust
slide tuần kinh tế công nghệ phần mềm hustslide tuần kinh tế công nghệ phần mềm hust
slide tuần kinh tế công nghệ phần mềm hust
 
onluyen.vn_Ebook 120 đề thi tuyển sinh tiếng anh 10 theo cấu trúc sở hà nội.doc
onluyen.vn_Ebook 120 đề thi tuyển sinh tiếng anh 10 theo cấu trúc sở hà nội.doconluyen.vn_Ebook 120 đề thi tuyển sinh tiếng anh 10 theo cấu trúc sở hà nội.doc
onluyen.vn_Ebook 120 đề thi tuyển sinh tiếng anh 10 theo cấu trúc sở hà nội.doc
 
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptxCÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptx
 
3000 từ thông dụng tiếng anh quốc tế Effortless
3000 từ thông dụng tiếng anh quốc tế Effortless3000 từ thông dụng tiếng anh quốc tế Effortless
3000 từ thông dụng tiếng anh quốc tế Effortless
 
2.THUỐC AN THẦN VÀ THUỐC GÂY NGỦ.pptx
2.THUỐC AN THẦN VÀ THUỐC GÂY NGỦ.pptx2.THUỐC AN THẦN VÀ THUỐC GÂY NGỦ.pptx
2.THUỐC AN THẦN VÀ THUỐC GÂY NGỦ.pptx
 
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
 
Bài thuyết trình môn học Hệ Điều Hành.pptx
Bài thuyết trình môn học Hệ Điều Hành.pptxBài thuyết trình môn học Hệ Điều Hành.pptx
Bài thuyết trình môn học Hệ Điều Hành.pptx
 
kjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsb
kjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsbkjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsb
kjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsb
 
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CÁNH DIỀU ...
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CÁNH DIỀU ...BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CÁNH DIỀU ...
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CÁNH DIỀU ...
 
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
Nghiên cứu cơ chế và động học phản ứng giữa hợp chất Aniline (C6H5NH2) với gố...
 
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
 
Thực hành lễ tân ngoại giao - công tác NG
Thực hành lễ tân ngoại giao - công tác NGThực hành lễ tân ngoại giao - công tác NG
Thực hành lễ tân ngoại giao - công tác NG
 

04 chuong 4 - databinding

  • 2. 2 Nội dung  Khái niệm Data Binding  Simple Data Binding  Complex Data Binding  Đồng bộ dữ liệu giữa các control và datasource  Master – Detail  Binding Source  Binding Navigator
  • 3. 3 Khái niệm Data Binding Data Binding giúp hiển thị dữ liệu trong Data Source lên control  Data binding là một giải pháp cho vấn đề liên kết giữa tập dữ liệu với các controls  Phân loại: Có 2 loại Data Binding • Simple Data Binding • Complex Data Binding
  • 4. 4 Simple Data Binding  Kết nối 1 property của control (loại property chỉ lưu 1 giá trị tại 1 thời điểm) với 1 cột (hay property) của data source  Ví dụ: • string tenControl.Text • object tenControl.Tag • Image picBox.Image • bool checkBox.Checked • bool radioButton.Checked • int trackBar.Value • …
  • 5. 5 Simple Data Binding  Cách 1: DataBinding binding; binding = new DataBinding("propertyName", dataSource, "dataMember", true); tenControl.DataBindings.Add(binding); tenControl.DataBindings.Add("propertyName", dataSource, "dataMember", true);  Cách 2:
  • 6. 6 Complex Data Binding  Kết nối 1 control có khả năng hiển thị nhiều giá trị tại 1 thời điểm với 1 cột hay tất cả các cột trong data source  Ví dụ: • DataGridView • ComboBox • ListBox • …
  • 7. 7 Complex Data Binding  Cách 1 tenControl.DataSource = tenBang;  Cách 2 tenControl.DataSource = tenDataSet; tenControl.DataMember = tenBang;
  • 8. 8 Data Binding đến Property  Data Binding đến thuộc tính Text tenTextBox.DataBindings.Add("Text", tenBang, "tenCot"); tenLabel.DataBindings.Add("Text", tenBang, "tenCot"); tenButton.DataBindings.Add("Text", tenBang, "tenCot"); tenCheckBox.DataBindings.Add("Text", tenBang, "tenCot"); … tenTextBox.DataBindings.Add( "Text", tenDS, “tenBang.tenCot"); tenLabel.DataBindings.Add( "Text", tenDS, “tenBang.tenCot"); tenButton.DataBindings.Add( "Text", tenDS, “tenBang.tenCot"); tenCheckBox.DataBindings.Add( "Text", tenDS, “tenBang.tenCot"); …
  • 9. 9 Data Binding đến Property  Data Binding đến thuộc tính Tag tenControl.DataBindings.Add("Tag", tenBang, "tenCot"); tenControl.DataBindings.Add( "Tag", tenDS, “tenBang.tenCot");
  • 10. 10 Data Binding đến Property  Data Binding đến thuộc tính Checked tenCheckBox.DataBindings.Add( "Checked", tenBang, "tenCot"); tenRadio.DataBindings.Add( "Checked", tenBang, "tenCot"); … tenCheckBox.DataBindings.Add( "Checked", tenDS, “tenBang.tenCot"); tenRadio.DataBindings.Add( "Checked", tenDS, “tenBang.tenCot"); …
  • 11. 11 Data Binding đến Property  Data Binding đến thuộc tính Value tenDateTimePicker.DataBindings.Add( “Value", tenBang, "tenCot"); tenProcessBar.DataBindings.Add( “Value", tenBang, "tenCot"); tenTrackBar.DataBindings.Add( “Value", tenBang, "tenCot"); tenNumricUpDown.DataBindings.Add( “Value", tenBang, "tenCot"); tenVScrollBar.DataBindings.Add( “Value", tenBang, "tenCot"); tenHScrollBar.DataBindings.Add( “Value", tenBang, "tenCot"); …
  • 12. 12 Data Binding đến Property  Data Binding đến thuộc tính Value tenDateTimePicker.DataBindings.Add( "Value", tenDS, "tenBang.tenCot"); tenProcessBar.DataBindings.Add( "Value", tenDS, "tenBang.tenCot"); tenTrackBar.DataBindings.Add( "Value", tenDS, "tenBang.tenCot"); tenNumricUpDown.DataBindings.Add( "Value", tenDS, "tenBang.tenCot"); tenVScrollBar.DataBindings.Add( “Value", tenDS, "tenBang.tenCot"); tenHScrollBar.DataBindings.Add( “Value", tenDS, "tenBang.tenCot"); …
  • 13. 13 Data Binding đến DataGridView  Cách 1 tenGrid.DataSource = tenBang;  Cách 2 tenGrid.DataSource = tenDataSet; tenGrid.DataMember = "TenBang";
  • 14. 14 Data Binding đến ComboBox  Cách 1 tenComboBox.DataSource = tenBang; tenComboBox.DisplayMember = "tenCot1"; tenComboBox.ValueMember = "tenCot2";  Cách 2 tenComboBox.DataSource = tenDataSet; tenComboBox.DisplayMember = "tenBang.tenCot1"; tenComboBox.ValueMember = "tenBang..tenCot2";
  • 15. 15 Data Binding đến ListBox  Cách 1 tenListBox.DataSource = tenBang; tenListBox.DisplayMember = "tenCot1"; tenListBox.ValueMember = "tenCot2";  Cách 2 tenListBox.DataSource = tenDataSet; tenListBox.DisplayMember = "tenBang.tenCot1"; tenListBox.ValueMember = "tenBang..tenCot2";
  • 16. Đồng bộ dữ liệu giữa các control và datasource
  • 17. 17 Đồng bộ dữ liệu giữa control và data source  Khái niệm  Cơ chế đồng bộ của .NET 1.x  Các thao tác của đối tượng CurrencyManager
  • 18. 18 Đồng bộ dữ liệu giữa control và data source Khái niệm  Đồng bộ dữ liệu là khả năng cập nhật tức thì dữ liệu giữa các control hay giữa các control và Data source • Ví dụ: – Khi nhấn button “Next”, chúng ta thấy các control đều cập nhập dữ liệu của record kế tiếp – Khi chọn record bằng listbox, chúng ta thấy các thông tin liên quan tự động xuất hiện trên các control khác của cùng form
  • 19. 19 Đồng bộ dữ liệu giữa control và data source Cơ chế đồng bộ của .NET 1.x  Khả năng đồng bộ trong .NET 1.x không hiện thực trong ADO.NET (DataSet, DataView không có thông tin về record nào đang hiện trên form)  Khả năng đồng bộ trong .NET 1.x được hiện thực trong Windows Form thông qua property BindingContext và lớp CurrencyManager
  • 20. 20 Đồng bộ dữ liệu giữa control và data source Cơ chế đồng bộ của .NET 1.x  Khi chúng ta kết nối các control với một data source, chương trình tự động tạo ra một đối tượng thuộc lớp CurrencyManager để theo dõi vị trí của record trong datasource  Mỗi data source tương ứng có 1 đối tượng CurrencyManager  Windows Form lưu tất cả đối tượng CurrencyManager vào trong mảng BindingContext
  • 21. 21 Đồng bộ dữ liệu giữa control và data source Cơ chế đồng bộ của .NET 1.x
  • 22. 22 Đồng bộ dữ liệu giữa control và data source Các thao tác của đối tượng CurrencyManager CurrencyManager cm; cm = (CurrencyManager)this.BindingContext[tenDataSet,"Bảng"];  Cách 1 CurrencyManager cm; cm = (CurrencyManager)this.BindingContext[tenBang];  Cách 2
  • 23. 23 Đồng bộ dữ liệu giữa control và data source Các thao tác của đối tượng CurrencyManager  Lớp CurrencyManager • Property: – int Position – int Count • Method: – void AddNew() – void EndCurrentEdit() – void CancelCurrentEdit() – void RemoveAt(int index)
  • 24. 24 Đồng bộ dữ liệu giữa control và data source Các thao tác của đối tượng CurrencyManager  Next • cm.Position++;  Previous • cm.Position--;  First • cm.Position = 0;  Last • vt = cm.Count – 1; • cm.Position = vt;
  • 25. 25 Đồng bộ dữ liệu giữa control và data source Các thao tác của đối tượng CurrencyManager CurrencyManager cm; cm = (CurrencyManager)this.BindingContext[dataTable]; if (cm.Position < cm.Count - 1) { cm.Position++; }  Những thao tác cơ bản CurrencyManager cm; cm = (CurrencyManager)this.BindingContext[dataTable]; if (cm.Position > 0) { cm.Position--; }
  • 26. 26 Đồng bộ dữ liệu giữa control và data source Các thao tác của đối tượng CurrencyManager  Insert • void cm.AddNew();  Update • cm.EndCurrentEdit(); da.Update(dataTable);  Delete • index = cm.Position • cm.RemoveAt(index);  Cancel • cm.CancelCurrentEdit();
  • 27. 27 Đồng bộ dữ liệu giữa control và data source Các thao tác của đối tượng CurrencyManager  Chú ý quan trọng: • Data source và data member của các control phải đồng nhất với nhau – Hoặc cùng dataset – Hoặc cùng datatable • Tốt nhất: nên dùng datatable
  • 29. 29 Master – detail  Master – detail: dạng quan hệ 1-n trong cơ sở dữ liệu
  • 30. 30 Master – detail  Bước 1: fill dữ liệu • Fill 2 bảng vào dataset (bao gồm khóa chính và khóa ngoại)  Bước 2: tạo quan hệ • DataColumn colMaster = ds.Tables[“tenMaster"].Columns[“cộtPK"]; • DataColumn colDetail = ds.Tables[“tenDetail"].Columns[“cộtFK"]; • DataRelation relation = new DataRelation(“tenquanhe", colMaster, colDetail); • ds.Relations.Add(relation);
  • 31. 31 Master – detail  Bước 3: (cách 1) • dataGridViewMaster.DataSource = ds; • dataGridViewMaster.DataMember = “tenMaster"; • dataGridViewDetail.DataSource = ds; • dataGridViewDetail.DataMember = “tenMaster.tenquanhe";
  • 32. 32 Master – detail  Bước 3: (cách 2) • dataGridViewMaster.DataSource = ds.Tables[“tenMaster”]; • dataGridViewDetail.DataSource = ds.Tables[“tenMaster”]; • dataGridViewDetail.DataMember = “tenquanhe";
  • 33. 33 Binding Source  Khái niệm  Tạo đối tượng Binding Source  Kết nối control với Binding Source  Các thao tác của đối tượng BindingSource
  • 34. 34 Binding Source Khái niệm  Trong .NET 1.X, chỉ cho phép kết nối trực tiếp giữa Control đến Data Source  Trong .NET 2.0, cho phép kết nối giữa Control và Data Source thông qua đối tượng trung gian Binding Source  Ưu điểm khi sử dụng Binding Source • Dễ dàng thay đổi Data Source của các Control • Cung cấp nhiều sự kiện và các phương thức
  • 37. 37 Binding Source Tạo đối tượng Binding Source  Cách 1: BindingSource bs; bs = new BindingSource(); … bs.DataSource = dataSource; bs.DataMember = "dataMember";  Cách 2: BindingSource bs; bs = new BindingSource(dataSource, "dataMember");
  • 38. 38 Binding Source Kết nối control với Binding Source  Simple Data Binding tenControl.DataSource = bs; //tenControl.DataMember = "tenBang";  Complex Data Binding tenControl.DataBindings.Add("propertyName", bs, "dataMember", true);
  • 39. 39 Binding Source Các thao tác của đối tượng BindingSource  Next • bs.MoveNext();  Previous • bs.MovePrevious();  First • bs.MoveFirst();  Last • bs.MoveLast();
  • 40. 40 Binding Source Các thao tác của đối tượng BindingSource  Insert • object bs.AddNew();  Update • bs.EndEdit(); da.Update(dataTable);  Delete • void bs.RemoveAt(index); • void bs.RemoveCurrent();  Cancel • bs.CancelEdit();
  • 41. 41 Binding Source Các thao tác của đối tượng BindingSource  Property • int bs.Position • int bs.Count • CurrencyManager bs.CurrencyManager • string bs.Filter • string bs.Sort  Method • void bs.ResetBinding(bool metaDataChanged); • void bs.ResetCurrentItem(); • void bs.ResetItem(int index);
  • 42. 42 Binding Navigator  Binding Navigator là 1 phiên bản mới của ToolStrip trong .NET 2.0 bao bọc các chức năng: MoveNext, MovePrevious, MoveFirst, MoveLast, AddNew, RemoveCurrent, …
  • 43. 43 Binding Navigator  Các bước tạo Binding Navigator • Bước 1: Kéo Binding Navigator vào Form • Bước 2: Thiết lập BinddingSource tenNavigator.BindingSource=tenBindingSource;

Editor's Notes

  1. Cách 1: DataMember = null
  2. Property DisplayMember: chứa dữ liệu hiển thị Property ValueMember: chứa dữ liệu kèm thêm Chúng ta có thể nhận dữ liệu đã chọn: SelectedValue
  3. Property DisplayMember: chứa dữ liệu hiển thị Property ValueMember: chứa dữ liệu kèm thêm Chúng ta có thể nhận dữ liệu đã chọn: SelectedValue
  4. Filter Gets or sets the expression used to filter which rows are viewed. Sort Gets or sets the column names used for sorting, and the sort order for viewing the rows in the data source. ResetBindings Causes a control bound to the BindingSource to reread all the items in the list and refresh their displayed values. ResetCurrentItem Causes a control bound to the BindingSource to reread the currently selected item and refresh its displayed value. ResetItem Causes a control bound to the BindingSource to reread the item at the specified index, and refresh its displayed value.
  5. Thieu phan: luu dữ liệu