Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL
Trang 1/16 H
H
ư
ư
ớ
ớ
n
n
g
gD
D
ẫ
ẫ
n
nT
T
h
h
ự
ự
c
hW
W
i
i
n
n
d
d
o
o
w
w
s
sN
N
â
â
n
n
g
gC
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.
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:
Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL
Trang 3/16
Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL
Trang 5/16
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:
+ frmSinhVien
Status bar hiển thị
ngày giờ hiện hành
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
//tượng(class) bằng từ khóa new instance
public clsQuanLyDiemSV()// constructor trùng tên ClS
{
//Đây là dòng lệnh kết nối với cơ sở dữ liệu SV
phải thuộc
con.ConnectionString =
"Provider=Microsoft.Jet.OleDb.4.0;Data Source=QLDiem.mdb";
//Mở cơ sở dữ liệu vừa kết nối
}
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
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
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)
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.
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;
DataTable tbl = new DataTable();
//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)
{
DataRow drw;
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"];
} 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 S
Nhấn load DL vào
listview