Mục tiêu bài họcSử dụng Wizard để tạo nguồn dữ liệu Buộc dữ liệu với điều khiển bằng Designer Buộc dữ liệu với điều khiển DataGridView Buộc dữ liệu với TextBox Buộc dữ liệu với ComboBox
Trang 1Bài 7:
LẬP TRÌNH VỚI CSDL – SỬ DỤNG DESIGNER
& TRIỂN KHAI ỨNG DỤNG
Trang 2Thao tác sử dụng kiến trúc kết nối
SqlCommand
SqlDataReader
Điều khiển buộc
Buộc dữ liệu với DataGridView
Buộc dữ liệu với ComboBox
Điều khiển buộc
Buộc dữ liệu với DataGridView
Buộc dữ liệu với ComboBox
BindingSource
Điều hướng dữ liệu
Lọc dữ liệu
File config
Trang 3Mục tiêu bài học
Sử dụng Wizard để tạo nguồn dữ liệu
Buộc dữ liệu với điều khiển bằng Designer
Buộc dữ liệu với điều khiển DataGridView
Buộc dữ liệu với TextBox
Buộc dữ liệu với ComboBox
Truy vấn dữ liệu bằng Designer
Tùy chỉnh Toolbar
Tạo form Master/Detail
Triển khai ứng dụng
Sử dụng Wizard để tạo nguồn dữ liệu
Buộc dữ liệu với điều khiển bằng Designer
Buộc dữ liệu với điều khiển DataGridView
Buộc dữ liệu với TextBox
Buộc dữ liệu với ComboBox
Truy vấn dữ liệu bằng Designer
Tùy chỉnh Toolbar
Tạo form Master/Detail
Triển khai ứng dụng
Trang 4SỬ DỤNG WIZARD
ĐỂ TẠO NGUỒN DỮ LIỆU
Trang 5Mỗi ứng dụng đều làm việc với một nguồn dữ liệu
nhất định, thường không làm việc với cả CSDL
Cấu hình nguồn dữ liệu cho phép lấy dữ liệu cần thiết
cho ứng dụng
Ứng dụng sẽ tương tác với nguồn dữ liệu này thay vì
trên data base Thay đổi trên nguồn dữ liệu sẽ được cậpnhật lại CSDL
Sử dụng cửa sổ Data Sources để cấu hình nguồn dữ
liệu
Cấu hình nguồn dữ liệu bằng Wizard
Mỗi ứng dụng đều làm việc với một nguồn dữ liệu
nhất định, thường không làm việc với cả CSDL
Cấu hình nguồn dữ liệu cho phép lấy dữ liệu cần thiết
cho ứng dụng
Ứng dụng sẽ tương tác với nguồn dữ liệu này thay vì
trên data base Thay đổi trên nguồn dữ liệu sẽ được cậpnhật lại CSDL
Sử dụng cửa sổ Data Sources để cấu hình nguồn dữ
liệu
Trang 6B1 Nhấn vào Add New Data Source
B2 Chọn kiểu nguồn dữ liệu
Chọn Database để lấy dữ liệu từ CSDL
Demo cấu hình nguồn dữ liệu
1 2
Trang 7B3 Chọn mô hình dữ liệu cho nguồn dữ liệu
Chọn Dataset
Demo cấu hình nguồn dữ liệu
3
Trang 8B4 Chọn kết nối
Chọn kết nối có sẵn
Demo cấu hình nguồn dữ liệu
4
Trang 9B4 Chọn kết nối
Chọn kết nối mới
Demo cấu hình nguồn dữ liệu
Kết quả của quá trình chọn kết
nối là chuỗi kết nối
Trang 10B5 Lưu chuỗi kết nối vào file app.config
Demo cấu hình nguồn dữ liệu
5
Trang 11B6 Chọn dữ liệu mong muốn
Demo cấu hình nguồn dữ liệu
6
Trang 12Nguồn dữ liệu được hiển thị trên cửa sổ Data Sources là
Dataset định kiểu kế thừa từ dataset
Với dataset định kiểu, có thể tham chiếu đến bảng, cột
bằng tên bảng, tên cột thay vì thông qua collection
Kết quả cấu hình nguồn dữ liệu
Nguồn dữ liệu được hiển thị trên cửa sổ Data Sources là
Dataset định kiểu kế thừa từ dataset
Với dataset định kiểu, có thể tham chiếu đến bảng, cột
bằng tên bảng, tên cột thay vì thông qua collection
//Truy cập đến bảng trong dataset không định kiểu
mMABooksDataSet.Tables[ "Products" ];
//Truy cập đến bảng trong dataset định kiểu
mMABooksDataSet.Products;
Trang 13Kết quả quá trình cấu hình nguồn dữ liệu là nguồn dữ
liệu tương đương với kết quả của đoạn mã
Tuy nhiên nguồn dữ liệu được tạo bởi đoạn mã này là
dataset không định kiểu
Kết quả cấu hình nguồn dữ liệu
conn = new SqlConnection( “chuỗi-kết-nối");
daCustomers = new SqlDataAdapter
( "Select ProductCode, Description, UnitPrice from Product", conn);
ds = new DataSet();
daCustomers.Fill(ds, "customers");
Kết quả quá trình cấu hình nguồn dữ liệu là nguồn dữ
liệu tương đương với kết quả của đoạn mã
Tuy nhiên nguồn dữ liệu được tạo bởi đoạn mã này là
dataset không định kiểu
conn = new SqlConnection( “chuỗi-kết-nối");
daCustomers = new SqlDataAdapter
( "Select ProductCode, Description, UnitPrice from Product", conn);
ds = new DataSet();
daCustomers.Fill(ds, "customers");
Trang 14BUỘC DỮ LIỆU VỚI ĐIỀU
KHIỂN BẰNG DESIGNER
BUỘC DỮ LIỆU VỚI ĐIỀU
KHIỂN BẰNG DESIGNER
Trang 15Kéo bảng Products từ cửa sổ Data Sources vào form,
Visual Studio tạo điều khiển DataGridView buộc với bảng
Trang 16Khi tạo DataGridView Visual Studio tự động thêm 5 đốitượng vào khay Component Designer
Đối tượng DataSet: định nghĩa dữ liệu của nguồn dữ liệu
(bảng Products)
Đối tượng TableAdapter: Cung cấp các câu lệnh sql được
sử dụng để làm việc với bảng Products
TableAdapter giống như DataAdapter nhưng chỉ được tạo bởi Designer
Đối tượng TableAdapterManager: Thay đổi dữ liệu trên
các bảng liên quan
BindingSource: Chỉ ra nguồn dữ liệu mà điều khiển buộc
và cung cấp các chức năng để thao tác với nguồn dữ liệu
BindingNavigator: Định nghĩa Toolbar bao gồm các điều
khiển để thao tác với nguồn dữ liệu
Buộc DataGridView với bảng Products
Khi tạo DataGridView Visual Studio tự động thêm 5 đốitượng vào khay Component Designer
Đối tượng DataSet: định nghĩa dữ liệu của nguồn dữ liệu
(bảng Products)
Đối tượng TableAdapter: Cung cấp các câu lệnh sql được
sử dụng để làm việc với bảng Products
TableAdapter giống như DataAdapter nhưng chỉ được tạo bởi Designer
Đối tượng TableAdapterManager: Thay đổi dữ liệu trên
các bảng liên quan
BindingSource: Chỉ ra nguồn dữ liệu mà điều khiển buộc
và cung cấp các chức năng để thao tác với nguồn dữ liệu
BindingNavigator: Định nghĩa Toolbar bao gồm các điều
khiển để thao tác với nguồn dữ liệu
Trang 17Mã được sinh ra bởi Visual Studio
Buộc DataGridView với bảng Products
private void Form1_Load(object sender, EventArgs e)
Trang 18Ngoài cách hiển thị theo DataGridView, Visual Studio
cũng có thể hiển thị như sau:
Buộc dữ liệu vào TextBox
Trang 19B1 Thêm nguồn dữ liệu
B2 Chọn bảng và chọn kiểu hiển thị là Details
Demo buộc dữ liệu vào TextBox
B1 Thêm nguồn dữ liệu
B2 Chọn bảng và chọn kiểu hiển thị là Details
Trang 20B3 Thay đổi kiểu hiển thị phù hợp cho từng cột
B4 Kéo bảng sang form
Demo buộc dữ liệu vào TextBox
B3 Thay đổi kiểu hiển thị phù hợp cho từng cột
B4 Kéo bảng sang form
Trang 21B5 Thay đổi vị trí hình dạng của các điều khiển
B6 Thay đổi thuộc tính của các điều khiển nếu muốn
Demo buộc dữ liệu vào TextBox
B5 Thay đổi vị trí hình dạng của các điều khiển
B6 Thay đổi thuộc tính của các điều khiển nếu muốn
Thuộc tính ReadOnly được thiết lập là true
Trang 22Kéo ComboBox từ Toolbox vào form
Buộc dữ liệu với ComboBox
Trang 23B2 Thiết lập các thuộc tính hiển thị cho ComboBox
Data Source: Nguồn dữ liệu (bảng) được buộc vào
Combobox
Display Member: Giá trị hiển thị của ComboBox
Value Member: Giá trị của ComboxBox
Selected Value: Giá trị được chọn trên Combobox
Buộc dữ liệu với ComboBox
B2 Thiết lập các thuộc tính hiển thị cho ComboBox
Data Source: Nguồn dữ liệu (bảng) được buộc vào
Combobox
Display Member: Giá trị hiển thị của ComboBox
Value Member: Giá trị của ComboxBox
Selected Value: Giá trị được chọn trên Combobox
Trang 24DataSource: statesBindingSource
(bảng State)
Display Member: Cột StateName
Value Member: Cột StateCode
Selected Value: Cột State của
Display Member: Cột StateName
Value Member: Cột StateCode
Selected Value: Cột State của
bảng Customer
(customerBindingSource)
Thiết lập thuộc tính DropDownStyle là DropDownList để người dùng không nhập giá trị vào
Trang 25TRUY VẤN DỮ LIỆU BẰNG DESIGNER TRUY VẤN DỮ LIỆU BẰNG DESIGNER
Trang 26Sử dụng truy vấn để chỉ hiển thị dữ liệu mong muốn
B1 Thêm truy vấn
Chọn điều khiển bất kỳ buộc vào dữ liệu
Nhấn Add Query trong menu thông minh của điều khiển
đó
Truy vấn dữ liệu
Trang 27B2 Đặt tên cho truy vấn
B4 Viết thêm mệnh đề Where cho truy vấn
Truy vấn dữ liệu
Trang 28Kết quả:
Giao diện sẽ tự thêm một toolbar chứa
Label chứa tên của tham số TextBox cho phép người dùng nhập tham số cho truy vấn Button để thực thi truy vấn
Truy vấn dữ liệu
Trang 29catch (System Exception ex)
catch (System Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
}
Trang 30TÙY CHỈNH TOOBAR
TÙY CHỈNH TOOBAR
Trang 31Toolbar tự động thêm vào khi kéo bảng từ nguồn dữ liệuvào form cũng giống như Toolbar thông thường
Có tùy chỉnh và viết xử lý sự kiện cho các button trên
Trang 32B1 Thêm chức năng vào toolbar
Tùy chỉnh Toolbar
Trang 33B2 Viết xử lý sự kiện
Xử lý sự kiện cho button Cancel
Tùy chỉnh Toolbar
private void bindingNavigatorCancelItem_Click
(object sender, EventArgs e) {
this.customersBindingSource.CancelEdit();
}
B2 Viết xử lý sự kiện
Xử lý sự kiện cho button Cancel
private void bindingNavigatorCancelItem_Click
(object sender, EventArgs e) {
this.customersBindingSource.CancelEdit();
}
Trang 34B2 Viết xử lý sự kiện
Xử lý sự kiện cho button Get All Customer
Tùy chỉnh Toolbar
private void fillToolStripButton_Click
(object sender, EventArgs e) {
try {
this.customersTableAdapter.Fill
(this.mmaBooksDataSet.Customers);
} catch ( SqlException ex) {
MessageBox.Show( "Database error # " + ex.Number +
": " + ex.Message, ex.GetType().ToString());
} }
private void fillToolStripButton_Click
(object sender, EventArgs e) {
try {
this.customersTableAdapter.Fill
(this.mmaBooksDataSet.Customers);
} catch ( SqlException ex) {
MessageBox.Show( "Database error # " + ex.Number +
": " + ex.Message, ex.GetType().ToString());
} }
Trang 35MASTER/DETAIL
Trang 37B1 Tạo nguồn dữ liệu từ cửa sổ Data Sources gồm haibảng Customers và Invoices
Demo thiết kế form Master/Detail
Kết quả là nguồn dữ liệu gồm hai bảng Customers và Invoices Trong bảng Customers có bảng con là
Trang 38B2 Kéo bảng Customers vào form
Tùy chỉnh các điều khiển trên form
Demo thiết kế form Master/Detail
Trang 39B3 Kéo bảng Invoices thuộc bảng Customers vào form
Demo thiết kế form Master/Detail
Trang 40TRIỂN KHAI ỨNG DỤNG
Trang 41Triển khai là quá trình tạo bản cài đặt của ứng dụng để
có thể cài đặt ứng dụng trên máy tính của người dùng
Triển khai là quá trình tạo bản cài đặt của ứng dụng để
có thể cài đặt ứng dụng trên máy tính của người dùng
Có 3 cách để triển khai ứng dụng
Xcopy
ClickOne
Setup program
Trang 42Cài đặt bằng cách copy thư mục ứng dụng vào ổ đĩa người
dùng
Sử dụng lệnh Xcopy của DOS hoặc Windows Explorer
Không tạo icon trên menu Start
Không hỗ trợ cài đặt các file bắt buộc để chạy ứng dụng
Sử dụng lệnh Xcopy của DOS hoặc Windows Explorer
Không tạo icon trên menu Start
Không hỗ trợ cài đặt các file bắt buộc để chạy ứng dụng
Trang 43B1 Chọn tùy chọn build là Release
Nhấn vào solution, chọn Solution Configurations,
chọn Release trong mục Activate solution
configuration
Demo triển khai ứng dụng XCopy
B1 Chọn tùy chọn build là Release
Nhấn vào solution, chọn Solution Configurations,
chọn Release trong mục Activate solution
configuration
Trang 44B2 Build ứng dụng
Thư mục Release sẽ được tạo ra trong thư mục bin
Thư mục Release chứa các assembly cần thiết cho ứng
dụng
Không cần cấu hình hay đăng ký registry
Nếu ứng dụng sử dụng các tính năng của NET Framework
4, phải cài đặt ứng FrameWork thì mới chạy được ứng
dụng
Demo triển khai ứng dụng XCopy
B2 Build ứng dụng
Thư mục Release sẽ được tạo ra trong thư mục bin
Thư mục Release chứa các assembly cần thiết cho ứng
dụng
Không cần cấu hình hay đăng ký registry
Nếu ứng dụng sử dụng các tính năng của NET Framework
4, phải cài đặt ứng FrameWork thì mới chạy được ứng
dụng
Trang 45B3 Copy thư mục Release vào ổ cứng người dùng
Sử dụng Windows Explorer
Sử dụng lệnh Xcopy
Ký tự S là thông số chỉ ra rằng copy tất cả các file trong thư
mục và thư mục con của thư mục guồn vào thư mục đích
Sử dụng file batch
Viết lệnh Xcopy vào file batch Chạy file batch khi muốn cài đặt hoặc cập nhật phiên bản mới
Demo triển khai ứng dụng XCopy
C:\>xcopy “đường-dẫn-thư-mục-nguồn” “đường-dẫn-thư-mục-đích /S
B3 Copy thư mục Release vào ổ cứng người dùng
Sử dụng Windows Explorer
Sử dụng lệnh Xcopy
Ký tự S là thông số chỉ ra rằng copy tất cả các file trong thư
mục và thư mục con của thư mục guồn vào thư mục đích
Sử dụng file batch
Viết lệnh Xcopy vào file batch Chạy file batch khi muốn cài đặt hoặc cập nhật phiên bản mới
Trang 46Cho phép cài đặt ứng dụng bằng cách nhấn vào link
trên trang web
Tạo icon cho ứng dụng trên menu Start
Cho phép sử dụng cửa sổ Uninstall or Change a Program
(Win 7) hoặc cửa sổ Add or Remove Program để gỡ bỏ
ứng dụng
Tự động kiểm tra và cài đặt các file cần thiết cho ứng
dụng
Cho phép tự động update ứng dụng
Phù hợp cho các ứng dụng nhiều người dùng
Triển khai ClickOne
Cho phép cài đặt ứng dụng bằng cách nhấn vào link
trên trang web
Tạo icon cho ứng dụng trên menu Start
Cho phép sử dụng cửa sổ Uninstall or Change a Program
(Win 7) hoặc cửa sổ Add or Remove Program để gỡ bỏ
Trang 47Mở cửa sổ Properties:
Nhấn vào project và chọn Properties
Demo triển khai ClickOne
Mở cửa sổ Properties:
Nhấn vào project và chọn Properties
Trang 486 7
Trang 49B1 Chỉ ra vị trí muốn phát hành ứng dụng (website, ftpserver hay đường dẫn đến thư mục trên máy)
Publish ứng dụng lên website, webserver phải được cài đặt FrontPage Server Extensions
B2 Chỉ ra chế độ cài đặt
Available online only:
Người dùng chạy ứng dụng từ server Người dùng phải có kết nối internet để chạy ứng dụng Ứng dụng được download từ server mỗi lần chạy nên nó sẽ khởi động chậm hơn so với ứng dụng offline
Avalable offline as well
Ứng dụng sẽ được cài đặt lên ổ cứng người dùng Icon sẽ được thêm vào menu Start
Các bước triển khai ClickOne
B1 Chỉ ra vị trí muốn phát hành ứng dụng (website, ftpserver hay đường dẫn đến thư mục trên máy)
Publish ứng dụng lên website, webserver phải được cài đặt FrontPage Server Extensions
B2 Chỉ ra chế độ cài đặt
Available online only:
Người dùng chạy ứng dụng từ server Người dùng phải có kết nối internet để chạy ứng dụng Ứng dụng được download từ server mỗi lần chạy nên nó sẽ khởi động chậm hơn so với ứng dụng offline
Avalable offline as well
Ứng dụng sẽ được cài đặt lên ổ cứng người dùng Icon sẽ được thêm vào menu Start
Trang 50B3 Chỉ ra phiên bản của ứng dụng
Mặc định phiên bản của ứng dụng sẽ tăng mỗi lần bạn
publish ứng dụng
Có thể tự thiết lập phiên bản mong muốn
Các bước triển khai ClickOne
Trang 52B5 Chỉ ra những ứng dụng cần phải được cài đặt trước
Trang 53B6 Thiết lập tùy chọn cập nhật
Các bước triển khai ClickOne
Trang 54B7 Thiết lập tùy chọn publish
Các bước triển khai ClickOne
Trang 55Cho phép người dùng cài đặt ứng dụng bằng cách chạy
chương trình cài đặt Setup
Cho phép người dùng chỉ ra thư mục cài đặt
Tạo icon trên menu Start
Cho phép sử dụng tính năng Uninstall or Change a
Program của Window
Kiểm tra các ứng dụng phải được cài đặt hoặc các file
cần thiết để chạy ứng dụng
Có thể cài đặt các thành phần chia sẻ trong GAC
GAC (Global Assembly Cache) là thư mục chứa tất cả các Assembly chung cho tất cả các phần mềm
Có thể thay đổi registry để cài đặt các thành phần COM
Triển khai chương trình cài đặt Setup
Cho phép người dùng cài đặt ứng dụng bằng cách chạy
chương trình cài đặt Setup
Cho phép người dùng chỉ ra thư mục cài đặt
Tạo icon trên menu Start
Cho phép sử dụng tính năng Uninstall or Change a
Program của Window
Kiểm tra các ứng dụng phải được cài đặt hoặc các file
cần thiết để chạy ứng dụng
Có thể cài đặt các thành phần chia sẻ trong GAC
GAC (Global Assembly Cache) là thư mục chứa tất cả các Assembly chung cho tất cả các phần mềm
Có thể thay đổi registry để cài đặt các thành phần COM
Trang 56B1 Tạo Project Setup
Thêm Project setup vào solution
Các bước triển khai chương trình cài đặt Setup
Project setup được
thêm vào
Trang 57Các bước triển khai chương trình cài đặt Setup
Trang 58B2 Thiết lập cho project Setup
Thiết lập file chạy chương trình cài đặt
Nhấn vào một thư mục bất kỳ trong File System (Application Folder)
Chọn Add Project Output Chọn Primary output
Thêm các file bổ sung như Readme hoặc file CSDL
Nhấn vào một thư mục bất kỳ trong File System Chọn Add File
Các bước triển khai chương trình cài đặt Setup
B2 Thiết lập cho project Setup
Thiết lập file chạy chương trình cài đặt
Nhấn vào một thư mục bất kỳ trong File System (Application Folder)
Chọn Add Project Output Chọn Primary output
Thêm các file bổ sung như Readme hoặc file CSDL
Nhấn vào một thư mục bất kỳ trong File System Chọn Add File