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

Hướng dẫn lập trình Window Form nâng cao

16 367 1

Đ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 16
Dung lượng 832,11 KB

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

Nội dung

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL Trang 1/16 Hướng Dẫn Thực Hành Lập Trình Windows Nâng Cao Khối: Cao Đẳng nghề và Trung Cấp Năm 2009 Hướng dẫn: • Bài tập th

Trang 1

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 1/16

Hướng Dẫn Thực Hành Lập Trình Windows Nâng Cao

Khối: Cao Đẳng nghề và Trung Cấp

Năm 2009

Hướng dẫn:

• Bài tập thực hành được chia làm nhiều Module

• Mỗi Module được thiết kế cho thời lượng là 3 tiết thực hành tại lớp với sự hướng dẫn của giảng viên

• Tùy theo số tiết phân bổ, mỗi tuần học có thể thực hiện nhiều Module

• Sinh viên phải làm tất cả các bài tập trong các Module ở tuần tương ứng Những sinh viên chưa hòan tất phần bài tập tại lớp có trách nhiệm tự làm tiếp tục ở nhà

• Các bài có dấu (*) là các bài tập nâng cao dành cho sinh viên khá giỏi

Trang 2

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 2/16

Module 1

Nội dung kiến thức thực hành:

+Một số thuộc tính của các control

+Các đối tượng móc nối CSDL trong mô hình ADO.NET

+Thiết lập giao diện chương trình móc nối CSDL thông qua sự kết hợp giữa các control

Bài 1

Mục đích:

Sử dụng cho Sinh Viên nhớ lại cách tạo CSDL Access

Mô tả:

1) Hãy tạo CSDL sau: với tên là QLDiem.MDB trên ổ đĩa D :\ HoTenSinhVien\

Cấu trúc các bảng:

Trang 3

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 3/16 Nhập liệu theo thứ tự bảng cha trước con sau Sinh Viên có thể nhập tên tùy ý nhưng Mã phải chín xác:

Trang 4

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 4/16

Trang 5

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 5/16

Trang 6

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 6/16

2)Sinh viên đánh giá thao tác nhập liệu Access như thế nào?

3) Giáo viên hướng dẫn đưa CSDL cho Sinh Viên làm cho thống nhất CSDL

4) Sinh viên tạo Project với tên XemThongTin theo yêu cầu sau

5) Xóa Form mặc định (Form1.cs) và thêm Form mới là frmChinh.cs, Đây là form MDI

Parent(Form cha) Cách tạo form như sau: vào menu Project->Add Windows Form, hộp thoại Add New Item xuất hiên:

Chọn đối tượng là MDI Parent

Đặt tên form là frmChinh.cs

Trang 7

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 7/16

Chọn Add chương trình sẽ tạo ra một form có giao diện mặc định như sau:

Hãy sửa đổi các Menu và Toolbar trên Form như hình sau:

Đặt tên cho các menu và toolbar Button tương ứng Ví dụ: mnuFile, mnuFileDataGridView,

ợi ý:

6) Thêm 4 form form con vào Project với tên

+ frmSinhVien Status bar hiển thị

ngày giờ hiện hành

Trang 8

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 8/16

+ frmChonBang + frmUnboundSinhVien + frmTreeVaListKetHop 7) Viết lệnh tương ứng cho các Menu hiên lên các form tương ứng

8) Thêm một class vào Project bằng cách vào menu Project->Add Class và đặt tên là clsQuanLyDiemSV sau đó viết hàm Constructor(khởi tạo) và hàm GetdatasetmotTBL trả về mộ Dataset nhưng chỉ chứa một bảng theo gợi ý sau

Trước tiên cần khai báo hai dòng sau ở phần trên cùng của class để sử dụng đối tượng móc nối CSDL:

using System.Data;

using System.Data.OleDb;

//Khai báo biến tòan cục dùng cho class

OleDbConnection con = new OleDbConnection ();

//Đây là hàm không có giá trị trả về và sẽ tự động thực hiên khi gọi đối

{

ph ải thuộc

con.ConnectionString =

"Provider=Microsoft.Jet.OleDb.4.0;Data Source=QLDiem.mdb" ;

con.Open();

}

public DataSet getDataSet( string tableName)

{

* có tên là tableName đổ vào DataSet, dữ liệu

* tr ả về kiểu DataSet*/

cmd.Connection = con;

cmd.CommandText = sql;

da.SelectCommand = cmd;

Trang 9

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 9/16

da.Fill(ds, tableName);

}

9) Áp dụng mô hình móc nối CSDL đưa dữ liệu lên form

frmSinhVien theo thiết kế sau

10)

Xem hướng dẫn thực hiện trong giáo trình

Yêu cầu:

Khi form vừa load lên thì hiện thông tin bảng SinhVien trong CSDL

Gợi ý:

Trước tiên cần phải khai báo một biến tòan cục kiểu clsQuanLyDiemSV tên là obj:

clsQuanLyDiemSV obj = new clsQuanLyDiemSV ();

Vào sụ kiên form load của form frmDataGridView nhập đọan code sau:

private void frmcon_Load(object sender, EventArgs e)

{

//Khai báo một biến kiểu DataSet

DataSet ds = new DataSet ();

//G ọi lại hàm getDataSet của đối tượng obj để đổ dữ liệu

//t ừ bảng SinhVien vào ds

ds = obj.getDataSet( "SinhVien" );

//Gán b ảng SinhVien vừa lấy ở ds vào DataGridView

//Ki ểu dữ liệu của DataSource là một DataTable hoặc DataView

//Do đó chúng ta phải sử dụng properties ds.Tables[Bảng]

//v ới Bảng là tên của bảng truyền vào hoặc là một số chỉ ra vị trí c ủa bảng

// đổ ở trong ds

dgrView.DataSource = ds.Tables[ "SinhVien" ];

//có th ể dùng //dgrView.DataSource = ds.Tables[ 0 ];

DataGridview (dgrSinhVien)

Trang 10

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 10/16

}

10 ) Quay lại Class viết thêm hai hàm GetDataTable và GetDataSetAllTL như sau:

public DataTable getDataTable( string tableName)

{

/*Ch ỉ cần gọi lại hàm getDataSet ở trên và

* Tables[tableName] ho ặc Tables[0]*/

return getDataSet(tableName).Tables[tableName];

}

public DataSet getDataSetAllDL()

{

OleDbDataAdapter daSV = new OleDbDataAdapter ();

OleDbDataAdapter daLop = new OleDbDataAdapter ();

OleDbDataAdapter daKhoa = new OleDbDataAdapter ();

OleDbDataAdapter daDiem = new OleDbDataAdapter ();

OleDbDataAdapter daMonHoc = new OleDbDataAdapter ();

OleDbCommand cmd = new OleDbCommand ();

DataSet ds = new DataSet ();

cmd.Connection = con;

cmd.CommandType = CommandType Text;

// -L ấy bảng Sinh viên: -\\

cmd.CommandText = "select * from SinhVien" ;

daSV.SelectCommand = cmd;

daSV.Fill(ds, "SinhVien" );

// -L ấy bảng Lớp: -\\

cmd.CommandText = "select * from Lop" ;

daLop.SelectCommand = cmd;

daLop.Fill(ds, "Lop" );

// -L ấy bảng Khoa: -\\

cmd.CommandText = "select * from Khoa" ;

daKhoa.SelectCommand = cmd;

daKhoa.Fill(ds, "Khoa" );

// -L ấy bảng Môn học: -\\

cmd.CommandText = "select * from MonHoc" ;

daMonHoc.SelectCommand = cmd;

daMonHoc.Fill(ds, "MonHoc" );

ds

0

1

2

3

4

SinhVien

Diem MonHoc Khoa Lop

Bảng

Vị trí trong ds

Trang 11

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 11/16

// -L ấy bảng Điểm: -\\

cmd.CommandText = "select * from Diem" ;

daDiem.SelectCommand = cmd;

daDiem.Fill(ds, "Diem" );

return ds;// ds đã chứa 5 bảng

}

11) Thiết kế lại form frmChonBang như sau:

Yêu cầu:

+ Khi form vừa load hiện vào Combobox là tên các bảng

+ Chọn thông tin bảng nào trong Combobox thì hiện thông tin bảng đó vào

DataGridview

Gợi ý:

private void frmDGRViewChonBang_Load( object sender, EventArgs e)

{

DataSet ds = new DataSet ();

//L ấy tất cả các bảng

ds = obj.getAllDataSet();

/*Duy ệt qua từng bảng và lấy tên bảng đưa vào combobox*/

foreach ( DataTable tbl in ds.Tables)

{

cboChonBang.Items.Add(tbl.TableName);

}

}

Đoạn code Đưa vào DataGridview:

private void cboChonBang_SelectedIndexChanged( object sender, EventArgs

e)

{

string tenbang;

DataTable tbl = new DataTable ;

//L ấy ra tên bảng từ combobox

tenbang = cboChonBang.SelectedItem.ToString();

// Đổ dữ liệu của bảng này vào tbl

tbl = obj.getDataTable(tenbang);

DataGridview

Trang 12

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 12/16

//gán tbl vào dataSource c ủa DataGridView

dgrView.DataSource = tbl;

}

12) Thiết kế form frmUnboundSinhVien như sau Binding data bằng kỹ thuật

UnBoundcontrol

Yêu cầu:

• Khi form load đổ dữ liệu từ bảng SinhVien vào Combobox sao cho text xuất hiện trong Combobox là TenSV và khi chọn phải lấy được MaSV

Trang 13

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 13/16

• Khi chọn một sinh viên từ Combobox thì cho hiện thông tin của sinh viên đó vào các label tương ứng

Gợi ý:

• Vào class clsQuanLyDiemSV.cs soan hàm GetDataTableMotSvVtrả về kiểu DataTable

là một bảng chứa thông tin của sinh viên có MaSV bằng mã sinh viên truyền vào, đoạn code như sau:

public DataTable getDataTableMotSV( string strma)

{

string sql;

OleDbDataAdapter da = new OleDbDataAdapter ();

OleDbCommand cmd = new OleDbCommand ();

DataSet ds = new DataSet ();

sql = "select * from SinhVien where MaSV='" + strma + "'" ;

cmd.Connection = con;

cmd.CommandType = CommandType Text;

cmd.CommandText = sql;

da.SelectCommand = cmd;

da.Fill(ds, "SinhVien" );

return ds.Tables[ "SinhVien" ];

• }

Trên form đổ dữ liệu vào Combobox bằng cách vào sự kiện form load của form frmBoundControl nhập đọan code sau:

//l ấy dữ liệu từ bảng SinhVien

tbl = obj.getDataTable( "sinhvien" );

//Cho text hi ện trong combobox là TenSV

cboSV.DisplayMember = "TenSV" ;

//Khi ch ọn thì dữ liệu trả về là MaSV

cboSV.ValueMember = "MaSV" ;

//Gán b ảng vừa lấy vào combobox

cboSV.DataSource = tbl;

Trang 14

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 14/16

• Ở sự kiên selectedIndexChanged của combobox viết như sau:

private void cboSV_SelectedIndexChanged( object sender, EventArgs e)

{

if (cboSV.SelectedValue != null )

{

//tbl ch ỉ chứa được 1 row duy nhất

tbl = obj.GetDataTableMotSV(cboSV.SelectedValue.ToString());

BidingDataUBoundText(tbl);

}

}

• Soạn hàm BindingDataUBoundText như sau:

void BidingDataUBoundText( DataTable tbl)

{

drw = tbl.Rows[0];

lblma.Text= drw[ "MaSV" ].ToString() ;

lblten.Text =drw[ "TenSV" ].ToString() ;

lbldc.Text= drw[ "DiaChi" ].ToString() ;

lblns.Text = drw[3].ToString() ; //lblns.Text=drw["NgaySinh"];

}

Trang 15

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 15/16

13 *) Thiết và đưa dữ liệu vào frmTreeVaListKetHop Sinh viên thiết kết form như sau

Gới ý và yêu cầu:

+ Thiết kế form có SplitContainer một bên Tree và một bên Listview (xem hình)

+ Ápdụng vòng lặp duyệt từng dòng đưa dữ liệu vào Treeview theo nguyên tắc

- Nút gốc là mã SinhVien

- Các nút con là thông tin các cột còn lại trong bảng SinhVien

+ Nhấn vào node gốc (Mã Sinh Viên) hiện thông tin điểm của sinh viên đó vào

Listview (xem hình)

14*) Về nhà Sinh Viên làm các bài tập trên nhưng móc nối với CSDL SQL

Gợi ý: Đưa nguồn dữ liệu CSDL SQL từ các bảng Access

15* Tương tự như bài 14 nhưng thay tree bằng giao diên flowlayout và node cha

(mã SV) thay bằng button động được tạo ra khi runtime Chọn trên các button mã

SV thì cũng hiện thông tin qua listview như ài 14

Trang 16

Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL

Trang 16/16

Thiết kế có dạng

Khi chạy có dạng

Nhấn load DL vào listview

Ngày đăng: 13/09/2014, 02:00

TỪ KHÓA LIÊN QUAN

w