1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập thực hành Công nghệ phần mềm

60 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 60
Dung lượng 3,89 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Trong 18 tiết tiếp theo giáo viên hướng dẫn sinh viên làm từng bước xây dựng phần mềm quản lý thư viện các phần tương tự sinh viên tự thực hiện.. Xây dựng chương trình thao tác với Lis

Trang 1

 Trong 6 tiết đầu giáo viên hướng dẫn sinh viên làm bài tập phần căn bản

 Trong 18 tiết tiếp theo giáo viên hướng dẫn sinh viên làm từng bước xây dựng phần mềm quản lý thư viện (các phần tương tự sinh viên tự thực hiện)

 Phần bài tập về nhà, sinh viên tự thực hành ở nhà

 6 tiết cuối cùng sinh viên nộp đề tài và giáo viên vấn đáp trực tiếp

1 Thiết kế dữ liệu: Tạo bảng, khóa, quan hệ

2 Thiết kế giao diện

- Màn hình chính + thực đơn

- Màn hình đăng nhập, thay đổi qui định

- Màn hình nhập (Danh mục, 1- Nhiều và Nhiều - nhiều)

- Màn hình tra cứu

3 Kế t nối CSDL

4 Debug Chương trình

5 Cài đặt các hàm xử lý

a Thêm, Xóa, Cập nhật và Lấy dữ liệu

b Tính toán theo nghiệp vụ bài toán

6 Tạo report (Crystal report)

Trang 2

5 Phần mềm quản lý phòng mạch tư

6 Phần mềm quản lý sổ tiết kiệm

7 Phần mềm quản lý giải vô địch bóng đá

8 Phần mềm quản lý bán vé chuyến bay

9 Phần mềm quản lý các đại lý

10 Phần mềm quản lý Gaga ô tô

11 Phần mềm quản lý Tiệc cưới

12 Phần mềm quản lý thu tiền điện

13 Phần mềm quản lý chuyến du lịch

14 Phần mềm quản lý tuy n sinh đại học

15 Phần mềm quản lý trư ng mẫu giáo

22 Phần mềm quản lý trung tâm tin học ngoại ngữ

23 Phần mềm quản lý đào tạo trư ng TC chuyên nghiệp

Ghi chú: Tất cả các phần mềm trên hiện đã có trên thị trư ng, một số cho download về dùng

thử Sinh viên nên sử dụng google tìm kiếm download về tham khảo

Trang 3

Phần 1 BÀI TẬP CƠ BẢN

Bài tập 1 Viết chương trình theo yêu cầu sau:

Thực hiện các yêu cầu sau:

- Khi nhấn nút “Tính”, chương trình sẽ giải và biện luận phương trình bậc 2, và hiện thị kết quả trong Textbox kết quả X1 hoặc X2

- Khi nhấn nút “Bỏ qua” các Textbox sẽ được xóa tr ng, con trỏ sẽ chuy n về Textbox A

- Khi nhấn nút “Thoát” chương trình sẽ kết thúc (có hỏi trước khi thoát)

- 2 Textbox X1, X2 dùng đ hiện thị kết quả ngư i dùng không được thao tác dữ liệu

- Có ki m tra giá trị nhập cho A, B, C là số nguyên

Bài tập 2 Xây dựng chương trình thao tác với Listbox như sau :

Yêu cầu:

- Chỉ cho nhập số vào textbox Nhập số

- Khi nhập dữ liệu vào Textbox Nhập số và nhấn Enter(hoặc click vào Cập Nhật) thì số

mới nhập này được thêm vào Listbox đồng th i dữ liệu trong Textbox bị xóa và focus được chuy n về Textbox

- Khi nhấn vào các phím chức năng, yêu cầu sẽ được thực hiện trên listbox

Trang 4

Bài tập 3 Xây dựng chương trình nhập danh sách sinh viên theo yêu cầu:

Yêu cầu:

- Khi nhập dữ liệu vào Textbox Họ và tên và nhấn Enter(hoặc click vào Cập Nhật) thì dữ

liệu mới nhập này được thêm vào Listbox đồng th i dữ liệu trong Textbox bị xóa và focus được chuy n về Textbox

- Nút > dùng đ di chuy n các mục(còn gọi là item) được chọn từ listbox trái qua listbox phải và ngược lại cho <

- Nút >> dùng đ di chuy n tất cả các mục(k cả không được chọn) từ listbox trái qua listbox phải và ngược lại cho <<

- Nút Xóa dùng đ xóa nhưng item được chọn trên textbox trái

Bài tập 4 Xây dựng chương trình thao tác với mảng

Yêu cầu:

- Chỉ cho nhập số nguyên vào textbox Nhập số nguyên

- Khi nhập dữ liệu vào Textbox Nhập số nguyên và nhấn Enter(hoặc click vào Nhập) thì

số mới nhập này được thêm vào Textbox nhập mảng đồng th i dữ liệu trong Textbox Nhập số nguyên bị xóa và focus được chuy n về Textbox nhập số nguyên

- 2 Textbox đ hi n thị mảng và kết quả, không được nhập giá trị trực tiếp

Trang 5

Bài tập 5 Xây dựng chương trình xử lý chuỗi sau:

Yêu cầu:

- Khi vừa mở form chỉ có nút Thoát là sử dụng được, Textbox Nhập dữ liệu nhận focus

- Khi Textbox Nhập dữ liệu vừa được nhập thì các nút sáng lên, đồng th i nếu xóa hết dữ liệu trong textbox nhập thì các nút cũng m đi ngoại trừ nút Thoát=> viết trong sự kiện

change của Textbox Nhập dữ liệu

- Khi các nút chức năng được nhấn thì kết quả sẽ hi n thị bên textbox Kết quả

Hướng dẫn:

 Tìm kiếm : Instr(vị trí b t đầu tìm, chuỗi chứa, chuỗi cần tìm, phân biệt hoa thư ng hay không)

 Thay thế : Replace(chuỗi chứa, chuỗi tìm, chuỗi thay thế, vị trí b t đầu, số lần tìm và thay thế, phân biệt hoa thư ng) : Trả về chuổi mới đã được thay thế

Trang 6

Bài tập 6 Thao tác với listview

STT Tên Control Loại Tên hàm xử lý

1 lsvNhanVien ListView lsvNhanVien_SelectedIndexChanged

3 dtpNgaySinh DateTimePicker

4 txtDiaChi TextBox

5 txtDienThoai TextBox

6 cboBangCap ComboBox cboBangCap.SelectedValue.ToString()

9 btnCapNhat Button btnCapNhat_Click

Yêu cầu :

Nhập thông tin vào phần “Thông tin chi tiết”, khi nhấn các nút lệnh sẽ thực hiện như sau:

1 Nút Thêm: Thêm các thông tin vào listview

Chú ý : ki m tra thông tin họ tên nhân viên không được rỗng, nếu rỗng thì không cho thêm

2 Nút Xóa: Xóa 1 dòng trên listview (chú ý nếu ngư i dùng chưa chọn 1 dòng trên listview thì yêu cầu ngư i dùng phải chọn rồi mới xóa)

Trang 7

3 Nút Sửa: Sửa 1 dòng trên listview (cập nhật dữ liệu trên các Thông tin chi tiết vào

listview)

4 Thoát: Thoát khỏi chương trình (có hỏi trước khi thoát)

5 Khi chọn 1 dòng trên listview thì nội dung của dòng được chọn sẽ được th hiện trên các ô “Thông tin chi tiết”

Chú ý : Ki m tra thông tin họ tên nhân viên không được rỗng, nếu rỗng thì không cho thêm, sửa

Hướng dẫn :

- Tạo mới Listview

- Bấm vào đ hiện ra menu tùy chỉnh của listview, chọn Edit Columns

- Thêm các tiêu đề cột cho listview

1 Thiết lập các tham số cho listview

a FullRowSelect = true;//cho phép chọn 1 dòng

b View = View.Details;//cho phép hi n thị thông tin chi tiết, bao gồm các tiêu đề

c Columns[“Tên Cột”].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); //cho phép tự động resize cột khi nội dung dài

2 Thêm vào 1 dòng cho listview : sử dụng ListViewItem

ListViewItem lvi = lsvNhanVien.Items.Add(txtHoten.Text);

lvi.SubItems.Add(dtpNgaySinh.Value.ToShortDateString());

lvi.SubItems.Add(txtDienThoai.Text);

lvi.SubItems.Add(txtDiaChi.Text);

3 Chọn 1 dòng trên listview : sử dụng sự kiện lsvNhanVien_SelectedIndexChanged

Chú ý : dùng 1 biến index đ lưu lại dòng đang chọn

Trang 8

lsvNhanVien.SelectedItems[0].SubItems[2].Text = txtDienThoai.Text;

lsvNhanVien.SelectedItems[0].SubItems[3].Text = txtDiaChi.Text;

}

Trang 10

CREATE TABLE [THAMSO] (

[TenThamSo] [nvarchar] ( 40 ) NOT NULL,

[GiaTri] [int] NULL,

CONSTRAINT [PK_THAMSO] PRIMARY KEY ( TenThamSo )

)

GO

Tạo bảng Bằng cấp

CREATE TABLE [BANGCAP] (

[MaBangCap] int Identity( , ),

[TenBangCap] [nvarchar] ( 40 ) NULL,

CONSTRAINT [PK_BANGCAP] PRIMARY KEY ( MaBangCap )

)

GO

Tạo bảng Nhân viên

CREATE TABLE [NHANVIEN] (

[MaNhanVien] int Identity( , ),

[HoTenNhanVien] [nvarchar] ( 50 ) NULL,

[NgaySinh] [datetime] NULL,

[DiaChi] [nvarchar] ( 50 ) NULL,

[DienThoai] [nvarchar] ( 15 ) NULL,

[MaBangCap] [int] NULL,

CONSTRAINT [PK_NHANVIEN] PRIMARY KEY ( MaNhanVien )

)

GO

Tạo bảng Độc giả

CREATE TABLE [DOCGIA] (

[MaDocGia] int Identity( , ),

[HoTenDocGia] [nvarchar] ( 40 ) NULL,

[NgaySinh] [datetime] NULL,

[DiaChi] [nvarchar] ( 50 ) NULL,

[Email] [nvarchar] ( 30 ) NULL,

[NgayLapThe] [datetime] NULL,

[NgayHetHan] [datetime] NULL,

[TienNo] [float] NULL,

CONSTRAINT [PK_DOCGIA_1] PRIMARY KEY ( MaDocGia )

)

GO

Tạo bảng Phiếu thu tiền

CREATE TABLE [PHIEUTHUTIEN] (

[MaPhieuThuTien] int Identity( , ),

[SoTienNo] [float] NULL,

[SoTienThu] [float] NULL,

[MaDocGia] [int] NULL,

[MaNhanVien] [int] NULL,

CONSTRAINT [PK_PHIEUTHUTIEN] PRIMARY KEY ( MaPhieuThuTien )

)

GO

Tạo bảng Sách

CREATE TABLE [SACH] (

[MaSach] int Identity( , ),

[TenSach] [nvarchar] ( 40 ) NULL,

[TacGia] [nvarchar] ( 30 ) NULL,

[NamXuatBan] [int] NULL,

[NhaXuatBan] [nvarchar] ( 40 ) NULL,

[TriGia] [float] NULL,

[NgayNhap] [datetime] NULL,

CONSTRAINT [PK_SACH] PRIMARY KEY ( MaSach )

Trang 11

)

GO

Tạo bảng Phiếu mượn sách

CREATE TABLE [PHIEUMUONSACH] (

[MaPhieuMuon] int Identity( , ),

[NgayMuon] [datetime] NOT NULL,

[MaDocGia] [int] NULL,

CONSTRAINT [PK_PHIEUMUONSACH] PRIMARY KEY ( MaPhieuMuon )

)

Tạo bảng Chi tiết phiếu mượn

CREATE TABLE [CHITIETPHIEUMUON] (

[MaSach] [int] NOT NULL,

[MaPhieuMuon] [int] NOT NULL,

CONSTRAINT [PK_CHITIETPHIEUMUON] PRIMARY KEY ( MaSach , MaPhieuMuon )

ALTER TABLE [PHIEUTHUTIEN] WITH CHECK ADD CONSTRAINT [FK_PHIEUTHUTIEN_DOCGIA]

FOREIGN KEY( [MaDocGia] )

REFERENCES [DOCGIA] [MaDocGia] )

GO

ALTER TABLE [PHIEUTHUTIEN] CHECK CONSTRAINT [FK_PHIEUTHUTIEN_DOCGIA]

GO

ALTER TABLE [PHIEUTHUTIEN] WITH CHECK ADD CONSTRAINT [FK_PHIEUTHUTIEN_NHANVIEN]

FOREIGN KEY( [MaNhanVien] )

REFERENCES [NHANVIEN] [MaNhanVien] )

ALTER TABLE [PHIEUMUONSACH] WITH CHECK ADD CONSTRAINT [FK_PHIEUMUONSACH_DOCGIA]

FOREIGN KEY( [MaDocGia] )

REFERENCES [DOCGIA] [MaDocGia] )

ALTER TABLE [CHITIETPHIEUMUON] WITH CHECK ADD CONSTRAINT

[FK_CHITIETPHIEUMUON_PHIEUMUONSACH] FOREIGN KEY( [MaPhieuMuon] )

REFERENCES [PHIEUMUONSACH] [MaPhieuMuon] )

GO

ALTER TABLE [CHITIETPHIEUMUON] CHECK CONSTRAINT

[FK_CHITIETPHIEUMUON_PHIEUMUONSACH]

GO

ALTER TABLE [CHITIETPHIEUMUON] WITH CHECK ADD CONSTRAINT

[FK_CHITIETPHIEUMUON_SACH] FOREIGN KEY( [MaSach] )

REFERENCES [SACH] [MaSach] )

Trang 12

2 Nhập dữ liệu cho các bảng: Thực hiện câu lệnh Insert

USE ThuVien

GO

-Nhap lieu

insert into BANGCAP values(N'TIẾN SĨ')

insert into BANGCAP values(N'THẠC SĨ')

insert into BANGCAP values(N'ĐẠI HỌC')

insert into BANGCAP values(N'CAO ĐẲNG')

insert into BANGCAP values(N'TRUNG CẤP')

insert into NHANVIEN values(N'PHẠM MINH VŨ','01/24/1980',N'163/30 Thành Thái

Trang 13

3 Các thao tác Quản trị CSDL

a Import CSDL từ CSDL trong file Access:

 Tạo database mới (rỗng)

 Right click lên database ThuVien chọn Task\Import Data…

- Chọn Data Source, File name và click Next

- Chọn Destination, Server name (nếu bạn dùng máy local có th đánh vào dấu „.‟) Connect bằng Windows hay SQL Server Authentication là tuỳ bạn và click Next

Trang 14

- Chọn Copy data from…click Next

- Chọn Select All…và click Next

- Click Next, Finish

- Kết quả như sau:

Trang 15

b Backup & Restore Database:

Việc mang 1 Database từ máy này sang máy khác rất thư ng xuyên xảy ra (ví dụ: chép bài từ trư ng về nhà và chép bài từ nhà lên trư ng,…) Có 2 cách đ làm việc này:

Cách 1: Attach database:

- Chép 2 file :

C:\Program files\Microsoft SQL Server\MSSQL.1\Data\QLThuVien.mdf

C:\Program files\Microsoft SQL Server\MSSQL.1\Data\QLThuVien_log.ldf

- Attach 2 file trên vào SQL Server khác (máy khác)

Cách 2: Backup & Restore

- Backup:

 Right click lên database QLThuVien cần backup, chọn Task\Backup…

 SQL Server sẽ mặc định backup database thư viện vào file ThuVien.bak theo đư ng dẫn mặc định sau:

C:\Program files\Microsoft SQL Server\MSSQL.1\Backup\QLThuVien.bak

 Nhấn Ok đ backup, sau đó chép file ThuVien.bak sang máy mới (SQL Server khác) đ Restore

 Trong trư ng hợp muốn back up với 1 đư ng dẫn khác thì remove đư ng dẫn trên

và Add lại đư ng dẫn mới muốn back up đến

Trang 16

- Restore:

 Đầu tiên tạo database QLThuVien trong SQL Management Studio

 Right click lên database vừa tạo, chọn Task\Restore\Database

 Chọn From device chỉ đến file QLThuVien.bak

Trang 19

Bài tập 2 Giao tiếp cơ sở dữ liệu với mô hình 1 lớp

Đ load thông tin của nhân viên từ table NHANVIEN cũng như là thêm, sửa, xóa, thì ta cần thực hiện như sau :

publicpartialclassfrmNhanVien : Form

{

SqlConnection sqlConn; //khai báo biến connection

SqlDataAdapter da; //khai báo biến dataAdapter

DataSet ds = newDataSet(); //khai báo 1 dataset

publicstring srvName = "PC\\SQLEX"; //chỉ định tên server

publicstring dbName = "QLTHUVIEN"; //chỉ định tên CSDL

void KetnoiCSDL() //thực hiện kết nối bằng chuỗi kết nối

{

string connStr = "Data source=" + srvName + ";database=" + dbName + ";

Integrated Security = True"; sqlConn = newSqlConnection(connStr);

}

DataTable layDanhSachNhanVien() /lấy danh sách nhân viên

{

string sql = "Select * from NhanVien";

da = newSqlDataAdapter(sql, sqlConn);

lsvNhanVien.FullRowSelect = true; //cho phép chọn 1 dòng

lsvNhanVien.View = View.Details; //cho phép hi n thị thông tin chi tiết, bao gồm các tiêu đề DataTable dt = layDanhSachNhanVien();

for (int i = 0; i < dt.Rows.Count; i++)

{

Trang 20

ListViewItem lvi = lsvNhanVien.Items.Add(dt.Rows[i]["Hotennhanvien"].ToString());

//dòng thứ i, tên cột là nhân viên

string sql = string.Format("insert into NhanVien

values({0},{1},{2},{3},{4},{5})", txtHoten.Text, dtpNgaySinh.Value.ToShortDateString,

txtDiaChi.Text, txtDienThoai.Text, 1); SqlCommand cmd = newSqlCommand(sql, sqlConn);

Đ kh c phục các nhược đi m trên, chúng ta chuy n sang mô hình 3 lớp

Bài tập 3 Giao tiếp cơ sở dữ liệu với mô hình 3 lớp

Ta xây dựng 3 lớp như sau cho NHANVIEN:

1 Lớp thao tác CSDL : Database.cs

2 Lớp xử lý nghiệp vụ : NhanVien.cs

3 Lớp xử lý giao diện : frmNhanvien.cs

Bước 1: Xây dựng lớp thao tác CSDL Database.cs

Chức năng: Lớp Database đảm nhiệm việc giao tiếp với cơ sở dữ liệu cho toàn ứng dụng Tất

cả việc tương tác với CSDL dữ liệu diễn ra ở bất cứ nơi nào trong ứng dụng đều được thực hiện thông qua lớp này

Mục đích: Sở dĩ chúng ta phải xây dựng lớp này là nhằm mang lại tính dễ bảo trì cũng như

tính tiến hóa cho hệ thống Nếu sau này cần thay đổi môi trư ng ứng dụng (sang Oracle, Access, Db2 ) thì chúng ta chỉ việc chỉnh sửa lớp Database này mà không cần quan tâm đến phần còn lại của ứng dụng

Trang 21

- Right-Click project ThuVien, chọn Add  Class…

- Nhập vào tên lớp là Database.cs và click Add

- Viết code cho Database.cs như sau:

using System;

using System.Collections.Generic;

using System.Text;

using System.Data.SqlClient; //SqlConnection,

using System.Data; //DataSet, DataTable,

//Contructor khởi tạo

public Database( string svrName, string dbName, bool intergratedMode, string usrName, string pwd) {

Trang 22

string connStr;

if (intergratedMode == true )

{

//Đăng nhập SQL Server sử dụng Windows Authentication Mode

connStr = "server=" + svrName + "; database=" + dbName + "; Integrated Security = True" ;

}

else

{

//Đăng nhập SQL Server sử dụng SQL Server Authentication Mode

connStr = "server=" + svrName + "; uid=" + usrName + ";

pwd=" + pwd + " ;database=" + dbName;

/*Câu lệnh dùng đ thiết lập kết nối đến SQL Server là “ server=tên_svr;

database = tên_db;Integrated Security = True” hay “ server=tên_svr;

database = tên_db; uid = tên_đăng_nhập;pwd = mật_khẩu;database = tên_db*/

//Câu lệnh này tạo mới một đối tượng SqlDataAdapter và

//cung cấp cho nó câu truy vấn cùng với kết nối hiện hành

da = new SqlDataAdapter (strQuery, sqlconn);

//DataSet đại diện cho một danh sách các DataTable

//(mỗi DataTable là 1 bảng dữ liệu)

//SqlCommand là đối tượng đảm nhận việc thực hiện các câu lệnh truy vấn

SqlCommand sqlcom = new SqlCommand (strquery, sqlconn);

da = new SqlDataAdapter (strQuery, sqlconn);

SqlCommandBuilder sqlcb = new SqlCommandBuilder (da);

Trang 23

db = new Database ( frmMDI srvName, frmMDI dbName,

frmMDI IntergratedMode, frmMDI userName, frmMDI passWord); }

//Lấy danh sách tất cả nhân viên

public DataTable LayDSNhanVien()

{ //Trả về thông tin nhân viên và tên bằng cấp của nhân viên đó

return db.Execute( "Select Manhanvien,Hotennhanvien,ngaysinh, diachi,dienthoai,tenbangcap

from NhanVien n,bangcap b where n.MaBangCap=b.MaBangCap" ); }

//Lấy danh sách bằng cấp->nạp vào combobox

public DataTable LayDSBangCap()

{

return db.Execute( "select * from BangCap" );

}

//Thêm 1 nhân viên mới

public void ThemNhanVien( string ten, string ngaysinh, string diachi, string dienthoai, string index_bc)

{

string sql = string Format( "Insert Into NhanVien Values(N'{0}','{1}',N'{2}','{3}',{4})" ,

ten,ngaysinh,diachi,dienthoai,index_bc); db.ExecuteNonQuery(sql);

}

//Xóa 1 nhân viên

public void XoaNhanVien( string index_nv)

public void CapNhatNhanVien( string index_nv, string hoten,

string ngaysinh, string diachi, string dienthoai, string index_bc) {

//Chuẩn bị câu lẹnh truy vấn

string str = string Format( "Update NHANVIEN set HoTenNhanVien = N'{0}',

NgaySinh ='{1}',diachi = N'{2}', dienthoai = '{3}', MaBangCap = {4} where MaNhanVien = {5}" ,hoten,ngaysinh,diachi,dienthoai,index_bc, index_nv); db.ExecuteNonQuery(str);

}

}

}

Trang 24

 Bước 3: Xây dựng lớp xử lý giao diện cho frmNhanVien.cs

Thiết kế giao diện như sau, đặt tên là frmNhanVien

Xử lý Code cho frmNhanVien:

//thiết lập các nút trên form

public void setButton( bool value)

Trang 25

//Nạp danh sách bằng cấp vào combobox cboBangCap

public void LoadDSBangCap()

{

DataTable dt_bc = nv.LayDSBangCap();

//Việc lấy dữ liệu được ủy nhiệm cho biến thuộc lớp xử lý (

//lớp NhanVien) chứ không trực tiếp thực hiện ở đây

//Nạp dữ liệu lên combobox

//Hi n thị danh sách nhân viên lên Listview

public void HienThiDanhSachNV()

{

dt = nv.LayDSNhanVien();

lsvNhanVien.Items.Clear();

lsvNhanVien.View = View Details;

for ( int i = 0; i < dt.Rows.Count; i++)

{

ListViewItem lvi;

lvi = lsvNhanVien.Items.Add(dt.Rows[i][ "MaNhanVien" ].ToString());

lvi.SubItems.Add(dt.Rows[i][ "Hotennhanvien" ].ToString());

//khi nhấn vào nút thêm

private void btnThem_Click( object sender, EventArgs e)

//Sự kiện khi chọn 1 dòng trên Listview thì nội dung của dòng đó

//sẽ được nạp lên FORM

private void lsvNhanVien_SelectedIndexChanged( object sender, EventArgs e)

Trang 26

DateTime Parse(lsvNhanVien.SelectedItems[0].SubItems[2].Text); txtDiaChi.Text = lsvNhanVien.SelectedItems[0].SubItems[3].Text;

txtDienThoai.Text = lsvNhanVien.SelectedItems[0].SubItems[4].Text;

cboBangCap.SelectedIndex =

cboBangCap.FindString(lsvNhanVien.SelectedItems[0].SubItems[5].Text); }

}

//Xóa 1 dòng trên listview

private void btnXoa_Click( object sender, EventArgs e)

{

if (lsvNhanVien.SelectedIndices.Count > 0)

{

DialogResult dr = MessageBox Show( "Bạn có ch c xóa không?" ,

"Xóa bằng cấp" , MessageBoxButtons YesNo, MessageBoxIcon Question);

//Khi thực hiện lưu thông tin xuống CSDL

private void btnLuu_Click( object sender, EventArgs e)

{

string ngay = String Format( "{0:MM/dd/yyyy}" , dtpNgaySinh.Value);

//Định dạng ngày tương ứng với trong CSDL SQLserver

if (themmoi)

{

nv.ThemNhanVien(txtHoten.Text, ngay, txtDiaChi.Text,

txtDienThoai.Text, cboBangCap.SelectedValue.ToString()); MessageBox Show( "Thêm mới thành công" );

Trang 27

private void btnHuy_Click( object sender, EventArgs e)

Chạy và ki m tra chương trình

Qua đây, ta nhận thấy rằng việc xử lý đã được phân loại rõ ràng các nhiệm vụ xử lý giúp ta dễ dàng quản lý chương trình hơn

Làm tư ng tự cho các màn hình danh mục hác :

Bằng cấp BangCap.cs Xử lý nghiệp vụ

frmBangCap.cs Xử lý giao diện

Lập thẻ đ c giả Docgia.cs Xử lý nghiệp vụ

frmDocGia.cs Xử lý giao diện

Tiếp nhận sách Sach.cs Xử lý nghiệp vụ

frmSach.cs Xử lý giao diện

 M t cách hác để nhập bảng danh mục

Như đã nói ở trên, muốn viết cho 1 form đ xử lý thêm, xóa, sửa cho 1 bảng, chúng ta phải tạo 2 file : file cơ sở và file form Tuy nhiên, có 1 cách dùng khác là sử dụng 1 control có chức năng liên kết

dữ liệu 1 cách tự động với 1 bảng trong Database, đó là DataGrid

- Dùng DataGrid đ nhập trực tiếp (nhập theo dạng bảng)

- Sử dụng DataAdapter đ update dữ liệu từ bảng xuống CSDL

- Ví dụ thao tác trên bảng Độc Giả :

- Viết code cho form: frmDocGia.cs

Trang 28

namespace QLThuVien

{

public partial class frmDocGia : Form

{

DocGia dg = new DocGia ();

Database db = new Database ( frmMDI srvName, frmMDI dbName, frmMDI IntergratedMode, "" , "" );

DataTable dt = new DataTable ();

db.Update( "Select * from DocGia" , dt);

MessageBox Show( "Cập nhật thành công" );

}

catch ( DataException de)

{

MessageBox Show( "Có lỗi khi cập nhật \n" + de.ToString(), "lỗi" ,

MessageBoxButtons AbortRetryIgnore, MessageBoxIcon Error); }

Trang 29

Bài tập 4 Xây dựng màn hình chính

1 Tạo màn hình chính:

 Có th thực hiện theo 2 cách sau:

- Từ menu, chọn project  Add Windows Form…

- Right-Click project thư viện (trong Solution Explorer), chọn Add  Windows Form

 Chọn Templates: MDIParent và đặt tên form là frmMDI.cs

2 Thiết ế giao diện cho màn hình chính:

 Kéo thả control Panel vào frmMDI

Trang 30

 Kéo thả control Panel vào frmMDI và đặt tên là panelMenu

 Chọn Left cho thuộc tính Dock của panelMenu

 Kết quả

 Kéo thả control GroupBox vào frmMDI và đặt tên (Name) là groupBoxDanhMuc và text là Danh mục

Ngày đăng: 16/10/2016, 02:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w