Download as pdf or txt
Download as pdf or txt
You are on page 1of 66

Bài 7:

LẬP TRÌNH VỚI CSDL – SỬ DỤNG DESIGNER


& TRIỂN KHAI ỨNG DỤNG
Hệ thống bài cũ

Thao 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
BindingSource
Điều hướng dữ liệu
Lọc dữ liệu
File config

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 2
Mụ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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 3
SỬ DỤNG WIZARD
ĐỂ TẠO NGUỒN DỮ LIỆU

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 4
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ập
nhật lại CSDL
Sử dụng cửa sổ Data Sources để cấu hình nguồn dữ
liệu

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 5
Demo cấu hình nguồn dữ liệu

B1. 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

1
2

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 6
Demo cấu hình nguồn dữ liệu

B3. Chọn mô hình dữ liệu cho nguồn dữ liệu


Chọn Dataset

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 7
Demo cấu hình nguồn dữ liệu

B4. Chọn kết nối


Chọn kết nối có sẵn

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 8
Demo cấu hình nguồn dữ liệu

B4. Chọn kết nối


Chọn kết nối mới

Kết quả của quá trình chọn kết


nối là chuỗi kết nối

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 9
Demo cấu hình nguồn dữ liệu

B5. Lưu chuỗi kết nối vào file app.config

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 10
Demo cấu hình nguồn dữ liệu

B6. Chọn dữ liệu mong muốn

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 11
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
File chứa cấu trúc của lớp DataSet bao gồm bảng trong
CSDL, cột trong bảng, kiểu dữ liệu của cột và ràng
buộc của các bảng
Dataset định kiểu
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;

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 12
Kết quả cấu hình nguồn dữ liệu

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ã

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");

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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 13
BUỘC DỮ LIỆU VỚI ĐIỀU
KHIỂN BẰNG DESIGNER

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 14
Buộc DataGridView với bảng Products

Ké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
dữ liệu Products
DataGridView được thêm vào form cùng với toolbar điều
hướng

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 15
Buộc DataGridView với bảng Products

Khi tạo DataGridView Visual Studio tự động thêm 5 đối


tượ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
Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 16
Buộc DataGridView với bảng Products

Mã được sinh ra bởi Visual Studio

private void Form1_Load(object sender, EventArgs e)


{
this.productsTableAdapter.Fill(this.mMABooksDataSet.Products);
}

private void productsBindingNavigatorSaveItem_Click(object sender, EventArgs e)


{
this.Validate();
this.productsBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.mMABooksDataSet);
}

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 17
Buộc dữ liệu vào TextBox

Ngoài cách hiển thị theo DataGridView, Visual Studio


cũng có thể hiển thị như sau:

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 18
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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 19
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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 20
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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 21
Buộc dữ liệu với ComboBox

B1. Tạo ComboxBox


C1.
Đổi cách hiển thị của cột State trên cửa Data Sources là
ComboxBox
Kéo cột State vào form
Thiết lập thuộc tính Text của ComboBox là None
C2
Kéo ComboBox từ Toolbox vào form

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 22
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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 23
Buộc dữ liệu với ComboBox

DataSource: statesBindingSource
(bảng State)
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
Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 24
TRUY VẤN DỮ LIỆU
BẰNG DESIGNER

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 25
Truy vấn dữ liệu

Sử 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
đó

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 26
Truy vấn dữ liệu

B2. Đặt tên cho truy vấn


B4. Viết thêm mệnh đề Where cho truy vấn

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 27
Truy vấn dữ liệu

Kế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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 28
Truy vấn dữ liệu

Mã được tự sinh ra
private void fillByCustomerIDToolStripButton_Click(object sender, EventArgs e)
{
try
{
this.customersTableAdapter.FillByCustomerID(this.mMABooksDataSet1.Customers,
((int)(System.Convert.ChangeType(customerIDToolStripTextBox1.Text, typeof(int)))));
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
}

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 29
TÙY CHỈNH TOOBAR

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 30
Toolbar tự động thêm vào khi kéo bảng từ nguồn dữ liệu
và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
toolbar này

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 31
Tùy chỉnh Toolbar

B1. Thêm chức năng vào toolbar

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 32
Tùy chỉnh Toolbar

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();
}

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 33
Tùy chỉnh Toolbar

B2. Viết xử lý sự kiện


Xử lý sự kiện cho button Get All Customer
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());
}
}

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 34
FORM
MASTER/DETAIL

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 35
Thiết kế form Master/Detail

Ví dụ về form Master/Detail

Form Master/Detail thường thể hiện thông tin của hai


bảng có quan hệ một nhiều

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 36
Demo thiết kế form Master/Detail

B1. Tạo nguồn dữ liệu từ cửa sổ Data Sources gồm hai


bảng Customers và Invoices

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à
invoices thể hiện hai bảng này có quan hệ một – nhiều

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 37
Demo thiết kế form Master/Detail

B2. Kéo bảng Customers vào form


Tùy chỉnh các điều khiển trên form

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 38
Demo thiết kế form Master/Detail

B3. Kéo bảng Invoices thuộc bảng Customers vào form

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 39
TRIỂN KHAI ỨNG DỤNG

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 40
Triển khai ứng 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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 41
Xcopy

Cà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
(ví dụ .NET FrameWork)
Không hỗ trợ tự động update phiên bản
Không hỗ trợ gỡ bỏ ứng dụng
Người dùng chạy ứng dụng bằng cách nhấn đúp vào file exe
Chạy ổn định khi tất cả các file cần cho ứng dụng đều có
trong thư mục ứng dụng
Phù hợp cho ứng dụng đơn giản và ít người dùng
Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 42
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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 43
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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 44
Demo triển khai ứng dụng XCopy

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

C:\>xcopy “đường-dẫn-thư-mục-nguồn” “đường-dẫn-thư-mục-đích /S

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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 45
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ỏ
ứ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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 46
Demo triển khai ClickOne

Mở cửa sổ Properties:
Nhấn vào project và chọn Properties

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 47
Demo triển khai ClickOne

Chọn Publish

2 4
5
6
3 7

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 48
Các bước triển khai ClickOne
B1. Chỉ ra vị trí muốn phát hành ứng dụng (website, ftp
server 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ó thể sử dụng tính năng Uninstall or Change a Program của
Win 7
Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 49
Các bước triển khai ClickOne

B3. 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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 50
Các bước triển khai ClickOne

B4. Chỉ ra file của ứng dụng


Theo mặc định chỉ có file exe và file manifest được publish
Nhấn vào Show all files để hiển thị file pdb và publish

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 51
Các bước triển khai ClickOne

B5. Chỉ ra những ứng dụng cần phải được cài đặt trước
để chạy ứng dụng
Chỉ ra những ứng dụng cần được cài đặt
Chỉ ra vị trí để download những ứng dụng đó

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 52
Các bước triển khai ClickOne

B6. Thiết lập tùy chọn cập nhật

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 53
Các bước triển khai ClickOne

B7. Thiết lập tùy chọn publish

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 54
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
Phù hợp với các ứng dụng phức tạp
Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 55
Các bước triển khai
chương trình cài đặt Setup
B1. Tạo Project Setup
Thêm Project setup vào solution

Project setup được


thêm vào

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 56
Các bước triển khai
chương trình cài đặt Setup

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 57
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

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 58
Các bước triển khai
chương trình cài đặt Setup
B3. Build project Setup
Chọn tính năng Solution Configurations
Chọn Release
Chọn build FutureSetup

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 59
TRIỂN KHAI ỨNG
DỤNG SỬ DỤNG CSDL

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 60
Triển khai ClickOne

Triển trai cho một nhóm người dùng được kết nối với
nhau bởi mạng LAN
Lưu CSDL trên server
Thiết lập chuỗi kết nối trỏ đến Server
Thiết lập cho tất cả người dùng đều truy cập được đến
Server

Data Source=SAMSUNG-R439;Initial
Catalog=MMABooks;User
ID=sa;Password=123456

Tên server

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 61
Triển khai ClickOne

Triển khai cho người dùng độc lập


Khi triển khai ứng dụng cho từng người dùng độc lập cần
phải lưu trữ CSDL trên máy tính của người dùng nên phải
Thêm file CSDL (.mdf và ldf) vào project  hai file này được
tự động thêm vào cửa sổ Application Files
Thiết lập chuỗi kết nối

Data Source=SAMSUNG-
R439;AttachDbFilename=|DataDirectory|\MMA
Books.mdf;User ID=sa;Password=123456

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 62
Triển khai ClickOne

File mdf và log được tự động thêm vào Application Files

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 63
Triển khai chương trình cài đặt Setup

Triển trai cho một nhóm người dùng được kết nối với
nhau bởi mạng LAN
Thực hiện giống như với ClickOne
Triển khai cho người dùng độc lập
Thêm thư file CSDL vào project Set (thư mục Application
Folder)
Thiết lập ứng dụng cần có để chạy ứng dụng
Chọn page Property
Chọn button Prerequisites

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 64
Tổng kết bài học

.NET hỗ trợ các tính năng tiện lợi để người dùng tạo
nhanh ứng dụng
Người dùng có thể tạo nguồn dữ liệu bằng Wizard
thay vì bằng cách viết mã
Người dùng có thể kéo dữ liệu từ nguồn dữ liệu vào
form cùng với tùy chỉnh nhỏ để được form mong muốn
.NET hỗ trợ truy vấn bằng Designer để lọc dữ liệu
mong muốn

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 65
Tổng kết bài học

Visual Studio hỗ trợ khiển khai ứng dụng theo 3 cách


Xcopy, ClickOne và chương trình Setup
Xcopy thường được dùng cho ứng dụng đơn giản, ít
người dùng
ClickOne thường được dùng cho ứng dụng nhiều
người dùng
Chương trình Setup thường được dùng cho ứng dụng
phức tạp
ClickOne và Setup đều hỗ trợ triển khai ứng dụng có
CSDL

Lập trình với CSDL - Sử dụng Designer & Triển khai ứng dụng 66

You might also like