Tạo app winform 1.1 Tạo giao diện Ta sẽ tạo một cửa sổ winform dùng để đăng nhập như sau Nếu người dùng nhập vào tài khoản và mật khẩu đúng với dữ liệu được lưu trong database sẽ có thô
Trang 1Đóng gói phần mềm với Advantaged Installer
MỤC LỤC
1 Tạo app winform 2
1.1 Tạo giao diện 2
1.2 Tạo Kết nối đến SQL server 3
1.2 Chương trình cho App 5
2 Đóng gói sản phẩm 5
2.2 Cài đặt các ứng dụng đi kèm 10
2.3 Tạo SQL Query để tạo database khi tiến hành cài đặt ứng dụng 13
3 Chạy demo project 17
Trang 2Ta sẽ tiến hành tạo 1 app là một cửa sổ đăng nhập với tài khoản và mật khẩu được lưu trong cơ sở dữ liệu App này sẽ được tạo trên Visual Studio
1 Tạo app winform
1.1 Tạo giao diện
Ta sẽ tạo một cửa sổ winform dùng để đăng nhập như sau
Nếu người dùng nhập vào tài khoản và mật khẩu đúng với dữ liệu được lưu trong database sẽ có thông báo là “ Đăng nhập thành công” và ngược lại thì sẽ là “Đăng nhập thất bại”
Tuy nhiên ban đầu nếu kết nối đến database không thành công thì dù có nhập đúng
dữ liệu sẽ báo về là “ Lỗi kết nối “
1.2 Tạo Kết nối đến SQL server
Trong bài thực hành này ta sẽ tạo 1 object của class SqlConnection và cung cấp 1 chuỗi ký tự cho thuộc tích ConnectionString của nó SqlConnection là class hỗ trợ kết nối đến cơ sở dữ liệu của Sql server connectionString là thuộc tính chứa tham số dành có việc kết nối này
"Data Source=(localdb)\v11.0;AttachDbFilename=" + path + @"\" + databaseName +
";Integrated Security=True"
Hoặc
Data Source=(localdb)\v11.0;Initial Catalog = +name_database ";Integrated
Security=True"
Trong đó:
DataSource là tên Server
AttachDBFileName là đường dẫn đến file database dưới dạng đuôi mdf
Initial Catalog là tên database
Trang 3Các phương thức open và close của lớp SqlConnection dùng để mở và đóng kết nối
SqlConnection StringKetNoi = new SqlConnection(@"Data Source=(localdb)\v11.0;Initial Catalog = +name_database ";Integrated Security=True");
StringKetNoi.open();
Với đoạn code trên ta đã có thể kết nối vào SQL server, tuy nhiên nếu chỉ viết trong hardcode như này thì lại bất tiện cho việc đóng gói ứng dụng Vì khi chuyển sang máy khác ta không thể mở ứng dụng ra để cài lại được VÌ vậy, ta sẽ sử dụng file cấu hình để lưu trữ và truy xuất connectionString
Mỗi project khi tạo ra se chứa sẵn 1 file XML chứa thông tin cấu hình
(App.config) Đây là file xml sẽ được copy vào thư mục của ứng dụng khi cài đặt Thông tin cấu hình ở đây có thể truy xuất khi chạy ứng dụng dưới dạng notepad
Để sử dụng App.config và connectionstring ta làm như sau Thay đổi file App.config bằng cách thêm <connectionStrings> xanh lá vào như dưới đây
<? xml version = 1.0 " encoding = utf-8 " ?>
< configuration >
< startup >
< supportedRuntime version = v4.0 " sku = NETFramework,Version=v4.7.2 " />
</ startup >
< connectionStrings >
< add name = my connection string " connectionString = Data Source=localhost\ SQLEXPRESS1;Initial Catalog =du_lieu;Integrated Security=True " />
</ connectionStrings >
</ configuration >
Trang 4Cuối cùng truy xuất chuỗi liên kết từ C# như sau:
var StringKetNoi =
System.Configuration.ConfigurationManager.ConnectionStrings[ "my connection
string" ].ConnectionString;
SqlConnection CoSoDulieu = new SqlConnection(StringKetNoi);
1.2 Chương trình cho App
Sau đây là chương trình cho app đăng nhập:
2 private void button1_Click( object sender, EventArgs e)
3 {
4 //string path = Path.GetFullPath(Environment.CurrentDirectory);
5 //string databaseName = "SinhVien4.mdf";
6 //SqlConnection quan = new SqlConnection(@"Data Source=(localdb)\ v11.0;AttachDbFilename=" + path + @"\" + databaseName + ";Integrated
Security=True");
7 var StringKetNoi =
System.Configuration.ConfigurationManager.ConnectionStrings[ "my connection
string" ].ConnectionString;
8 SqlConnection CoSoDulieu = new SqlConnection(StringKetNoi);
9.
10 try
11 {
12 CoSoDulieu.Open();
13 string tk = textBox1.Text;
Trang 514 string mk = textBox2.Text;
15 string sql = "select *from Table_1 where TaiKhoan= '" + tk + "' and Matkhau= '" + mk + "'" ;
16 SqlCommand cmd = new SqlCommand(sql, CoSoDulieu);
17 SqlDataReader data = cmd.ExecuteReader();
18 if (data.Read() == true )
19 {
20 MessageBox.Show( "Đăng nhập thành công!" );
21 }
22 else
23 {
24 MessageBox.Show( "Đăng nhập thất bại!" );
25 }
26 }
27 catch (Exception ex)
28 {
29 MessageBox.Show( "Lỗi Kết Nối" );
30 }
31 }
32.
33 private void button2_Click( object sender, EventArgs e)
34 {
35 Close();
36. }
2 Đóng gói sản phẩm
Advanced Installer là một tiện ích Windows được thiết kế để giúp bạn xây dựng các
gói Windows Installer trong một môi trường làm việc sạch sẽ và trực quan.
Mặc dù nó có nhiều tham số dành riêng nhưng giao diện người dùng rất đơn giản và cho người dùng khả năng tạo dự án mới bằng cách chọn loại, cụ thể là trình cài đặt (ví dụ: ứng dụng Visual Studio hoặc .NET,
gói 32/64-bit hỗn hợp), Java , cập nhật, bổ trợ, thiết bị di động và các thứ khác.
Link tải advanced installer
https://taiwebs.com/windows/download-advanced-installer-128.html
Mở phần mềm lên chọn Template theo dạng Visual Studio Application để chọn 2.1 Chọn project được đóng gói
Trang 6Sau khi kích chọn thì điền các mục thông tin APP như tên sản phẩm, tên công ty
Chọn dạng cài theo kiểu MSI setup file để có thể thêm ứng dụng vào cùng
Trang 7TIếp tục ấn next, đến khi cửa sổ này hiện ra , kích vào ký hiệu … để chọn app cần đóng gói
Sau khi đã chọn App tiếp tục ấn NEXT
Trang 8Select all để đính kèm theo các thư viện dll được sử dụng trong App
Trang 9Nếu các mục sau đó để theo default thì có thể tiếp tục ấn next đến khi hiện ra cửa
sổ này thì chọn finish,
Trang 102.2 Cài đặt các ứng dụng đi kèm
Ta quay trở lại phần cài đặt cho cả Project, gồm các mục
Chọn Customize để cài thêm thuộc tính cho project
Trong project này ta đang cần thêm 2 thứ đó là cài thêm file cài ứng dụng SQL server express đi kèm để có thể sử dụng được database khi project được cài trên một máy
Trang 11client khác chưa có SQL server Thứ 2 là ta cần thêm chức năng tự động khởi tạo
database khi ứng dụng được cài xuống
TÌm đến phần Requirements và kích chọn Prerequisites
Trong phần server chọn SQL Databases
Cuối cùng thì chọn apply để hoàn xác nhận đồng ý thêm
Đầu tiên ta chọn đến phần Presequisites kích chọn để cài đính kèm file SQL
Server Express 2019 vào
Trang 12Tiếp theo vào phần SQL Database để tạo hoặc đính kèm file database
Trong mục Database server chọn Predefined Connection để tạo kết nối cho
database
Trang 132.3 Tạo SQL Query để tạo database khi tiến hành cài đặt ứng dụng
Trong phần cài đặt ta cần lưu ý cấu hình 1 số thông tin như sau
Phần General mục Server :cần thêm tên của server ta cần kết nối đến
Phần Authentication : tích vào Trusted Connnection
Phần Catalogue mục Database : master
Các thông tin còn tại có thể để default hoặc thay đổi theo yêu cầu của project
Trang 14Tạo database bằng script với lệnh
Sau đó tạo file Script để tạo cài đặt cho database hoặc có thể thêm Database có sẵn bằng các add file script tạo từ trước vào
Thêm các script sau để tạo bảng trong database
USE [du_lieu]
GO
/****** Object: Table [dbo].[Table_1] Script Date: 6/22/2020 10:58:27 PM
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Table_1](
[TaiKhoan] [nchar](20) NULL, [MatKhau] [nchar](20) NULL ) ON [PRIMARY]
GO
Trang 15INSERT [dbo].[Table_1] ([TaiKhoan], [MatKhau]) VALUES (N'temas ', N'duongkhue ')
GO
INSERT [dbo].[Table_1] ([TaiKhoan], [MatKhau]) VALUES (N'temas1 ', N'duongkhue1 ')
GO
INSERT [dbo].[Table_1] ([TaiKhoan], [MatKhau]) VALUES (N'22597 ', N'22597 ')
GO
INSERT [dbo].[Table_1] ([TaiKhoan], [MatKhau]) VALUES (N'temas2 ', N'duongkhue2 ')
GO
USE [master]
GO
ALTER DATABASE [du_lieu] SET READ_WRITE
GO
Như vật ta có bảng dữ liệu sau :
Tài khoản
Mật khẩu
temas 1
duongkhue1
temas 2
duongkhue2 Trong Mục Execution , Run tích dấu V vào phần at install để bảng được tạo đồng thời khi cài đặt xuống ứng dụng
Trang 16ở Script_1 là file script dùng để xóa database , ta đưa vào dòng code như dưới để xóa database và chọn at unistall, tức là xóa khi ứng dụng bị gỡ bỏ
Cuối cùng ta sẽ chọn Run để hoàn tất việc đóng gói
Trang 17 Lưu ý : Trong quá trình cài đặt SQL server Express 2019 ta cần đặt tên cho server đúng với tên đã đặt trong phần lập trình
ở project này tên của server là : SQLEXPRESS1
3 Chạy demo project
Sau khi hoàn tất việc cài đặt project, ta mở app lên và chạy thử nghiệm , nhấp vào biểu tượng sau để mở dự án
Nhập tài khoản và mật khẩu như trong bảng, ta sẽ thấy messageBox thông báo đăng nhập thành công như hình
Trang 18Nếu nhập tài khoản và mật khẩu chưa được lưu trong database , hoặc nhập sai 1 trong 2 , thì sẽ hiển thị như sau
Trang 19Cuối cùng để kiểm tra database đã được tạo, ta có thể vào ứng dụng Microsoft SQL Server Management Studio
Có thể thấy database mang tến du_lieu đã được tự động tạo nhờ phần cài đặt của project này