Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
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
Nội dung
Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL Hướng Dẫn Thực Hành Lập Trình Windows Nâng Cao Khối: Cao Đẳng nghề Trung Cấp Năm 2009 Hướng dẫn: • Bài tập thực hành chia làm nhiều Module • Mỗi Module thiết kế cho thời lượng tiết thực hành lớp với hướng dẫn giảng viên • Tùy theo số tiết phân bổ, tuần học thực nhiều Module • Sinh viên phải làm tất tập Module tuần tương ứng Những sinh viên chưa hịan tất phần tập lớp có trách nhiệm tự làm tiếp tục nhà • Các có dấu (*) tập nâng cao dành cho sinh viên giỏi Trang 1/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL Module Nội dung kiến thức thực hành: +Một số thuộc tính control +Các đối tượng móc nối CSDL mơ hình ADO.NET +Thiết lập giao diện chương trình móc nối CSDL thơng qua kết hợp control Bài 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 QLDiem.MDB ổ đĩa D :\ HoTenSinhVien\ Cấu trúc bảng: Trang 2/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL Nhập liệu theo thứ tự bảng cha trước sau Sinh Viên nhập tên tùy ý Mã phải chín xác: Trang 3/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL Trang 4/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 2)Sinh viên đánh giá thao tác nhập liệu Access nào? 3) Giáo viên hướng dẫn đưa CSDL cho Sinh Viên làm cho thống 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) thêm Form frmChinh.cs, Đây form MDI Parent(Form cha) Cách tạo form sau: vào menu Project->Add Windows Form, hộp thoại Add New Item xuất hiên: Chọn đối tượng MDI Parent Đặt tên form frmChinh.cs Trang 6/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL Chọn Add chương trình tạo form có giao diện mặc định sau: Hãy sửa đổi Menu Toolbar Form hình sau: Đặt tên cho menu toolbar Button tương ứng Ví dụ: mnuFile, mnuFileDataGridView, ợi ý: Status bar hiển thị ngày hành 6) Thêm form form vào Project với tên + frmSinhVien Trang 7/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL + frmChonBang + frmUnboundSinhVien + frmTreeVaListKetHop 7) Viết lệnh tương ứng cho Menu hiên lên form tương ứng 8) Thêm class vào Project cách vào menu Project->Add Class đặt tên clsQuanLyDiemSV sau viết hàm Constructor(khởi tạo) hàm GetdatasetmotTBL trả mộ Dataset chứa bảng theo gợi ý sau Trước tiên cần khai báo hai dòng sau phần 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 = new OleDbConnection(); //Đây hàm khơng có giá trị trả tự động thực hiên gọi đối //tượng(class) từ khóa new instance public clsQuanLyDiemSV()// constructor trùng tên ClS { //Đây dòng lệnh kết nối với sở liệu SV phải thuộc con.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=QLDiem.mdb"; //Mở sở liệu vừa kết nối con.Open(); } public DataSet getDataSet(string tableName) { /*Mục đích hàm lấy liệu từ bảng * có tên tableName đổ vào DataSet, liệu * trả kiểu DataSet*/ //Khai báo biến string sql; OleDbDataAdapter da = new OleDbDataAdapter(); OleDbCommand cmd = new OleDbCommand(); DataSet ds = new DataSet(); //Dùng câu lệnh SQL để lấy liệu sql = "select * from " + tableName; //Gán kết nối cho cmd cmd.Connection = con; cmd.CommandType = CommandType.Text; cmd.CommandText = sql; da.SelectCommand = cmd; //Đổ liệu vào ds Trang 8/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL da.Fill(ds, tableName); //Trả ds sau có liệu return ds; } 9) Áp dụng mơ hình móc nối CSDL đưa liệu lên form frmSinhVien theo thiết kế sau DataGridview (dgrSinhVien) 10) Xem hướng dẫn thực giáo trình Yêu cầu: Khi form vừa load lên thơng tin bảng SinhVien CSDL Gợi ý: Trước tiên cần phải khai báo biến tòan cục kiểu clsQuanLyDiemSV tên obj: clsQuanLyDiemSV obj = new clsQuanLyDiemSV(); Vào sụ kiên form load form frmDataGridView nhập đọan code sau: private void frmcon_Load(object sender, EventArgs e) { //Khai báo biến kiểu DataSet DataSet ds = new DataSet(); //Gọi lại hàm getDataSet đối tượng obj để đổ 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 liệu DataSource DataTable DataView //Do phải sử dụng properties ds.Tables[Bảng] //với Bảng tên bảng truyền vào số vị trí bảng //đổ ds dgrView.DataSource = ds.Tables["SinhVien"]; //có thể dùng //dgrView.DataSource = ds.Tables[0]; Trang 9/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL } 10 ) Quay lại Class viết thêm hai hàm GetDataTable GetDataSetAllTL sau: public DataTable getDataTable(string tableName) { /*Chỉ cần gọi lại hàm getDataSet * Tables[tableName] Tables[0]*/ return getDataSet(tableName).Tables[tableName]; } public DataSet getDataSetAllDL() { OleDbDataAdapter daSV = new OleDbDataAdapter(); Bảng 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; SinhVien cmd.CommandType = CommandType.Text; ds // 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"); Lop Khoa // -Lấy bảng Khoa: -\\3 cmd.CommandText = "select * from Khoa"; daKhoa.SelectCommand = cmd; daKhoa.Fill(ds, "Khoa"); MonHoc Diem // Lấy bảng Môn học: \\ cmd.CommandText = "select * from MonHoc"; Vị trí daMonHoc.SelectCommand = cmd; ds daMonHoc.Fill(ds, "MonHoc"); Trang 10/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL // -Lấy bảng Điểm: -\\ cmd.CommandText = "select * from Diem"; daDiem.SelectCommand = cmd; daDiem.Fill(ds, "Diem"); return ds;// ds chứa bảng } 11) Thiết kế lại form frmChonBang sau: DataGridview Yêu cầu: + Khi form vừa load vào Combobox tên bảng + Chọn thơng tin bảng Combobox 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 bảng ds = obj.getAllDataSet(); /*Duyệt qua bảng 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 tên bảng từ combobox tenbang = cboChonBang.SelectedItem.ToString(); //Đổ liệu bảng vào tbl tbl = obj.getDataTable(tenbang); Trang 11/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL //gán tbl vào dataSource DataGridView dgrView.DataSource = tbl; } 12)Thiết kế form frmUnboundSinhVien sau Binding data kỹ thuật UnBoundcontrol Yêu cầu: • Khi form load đổ liệu từ bảng SinhVien vào Combobox cho text xuất Combobox TenSV chọn phải lấy MaSV Trang 12/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL • Khi chọn sinh viên từ Combobox cho thơng tin sinh viên vào label tương ứng Gợi ý: Vào class clsQuanLyDiemSV.cs soan hàm GetDataTableMotSvVtrả kiểu DataTable bảng chứa thơng tin sinh viên có MaSV mã sinh viên truyền vào, đoạn code 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 đổ liệu vào Combobox cách vào kiện form load form frmBoundControl nhập đọan code sau: DataTable tbl = new DataTable(); //lấy liệu từ bảng SinhVien tbl = obj.getDataTable("sinhvien"); //Cho text combobox TenSV cboSV.DisplayMember = "TenSV"; //Khi chọn liệu trả MaSV cboSV.ValueMember = "MaSV"; //Gán bảng vừa lấy vào combobox cboSV.DataSource = tbl; Trang 13/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL • Ở kiên selectedIndexChanged combobox viết sau: private void cboSV_SelectedIndexChanged(object sender, EventArgs e) { if (cboSV.SelectedValue != null) { DataTable tbl = new DataTable(); //tbl chứa row tbl = obj.GetDataTableMotSV(cboSV.SelectedValue.ToString()); BidingDataUBoundText(tbl); } } • Soạn hàm BindingDataUBoundText 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"]; } Trang 14/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL 13 *) Thiết đưa liệu vào frmTreeVaListKetHop Sinh viên thiết kết form sau Gới ý yêu cầu: + Thiết kế form có SplitContainer bên Tree bên Listview (xem hình) + Ápdụng vịng lặp duyệt dòng đưa liệu vào Treeview theo nguyên tắc - Nút gốc mã SinhVien - Các nút thơng tin cột cịn lại bảng SinhVien + Nhấn vào node gốc (Mã Sinh Viên) thơng tin điểm sinh viên vào Listview (xem hình) 14*) Về nhà Sinh Viên làm tập móc nối với CSDL SQL Gợi ý: Đưa nguồn liệu CSDL SQL từ bảng Access 15* Tương tự 14 thay tree giao diên flowlayout node cha (mã SV) thay button động tạo runtime Chọn button mã SV thơng tin qua listview ài 14 Trang 15/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL Thiết kế có dạng Khi chạy có dạng Nhấn load DL vào listview Trang 16/16 ... hành - Lập trình Windows nâng cao phần CSDL Trang 4/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 2)Sinh viên... 2/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL Nhập liệu theo thứ tự bảng cha trước sau Sinh Viên nhập tên tùy ý Mã phải chín xác: Trang 3/16 Hướng dẫn thực hành - Lập trình Windows. . .Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL Module Nội dung kiến thức thực hành: +Một số thuộc tính control +Các đối tượng móc nối CSDL mơ hình ADO.NET +Thiết lập giao