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

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

16 366 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

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 H ư ư ớ ớ n n g g D D ẫ ẫ n n T T h h ự ự c c H H à à n n h h L L ậ ậ p p T T r r ì ì n n h h W W i i n n d d o o w w s s N N â â n n g g C C a a o o 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. 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 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: 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 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 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 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 con.Open(); } public DataSet getDataSet(string tableName) { /*Mục đích của hàm này là lấy dữ liệu từ bảng * có tên là tableName đổ vào DataSet, dữ liệu * trả về kiểu DataSet*/ //Khai báo các 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 dữ 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; //Đổ dữ liệu vào ds 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); //Trả về ds sau khi đã có dữ liệu return ds; } 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) 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 [...]... 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 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 12/16 Hướng dẫn thực hành - Lập trình. . .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 5 bảng } 11) Thiết kế lại form frmChonBang như sau: DataGridview Yêu cầu: + Khi form vừa load hiện vào Combobox là tên các bảng + Chọn... 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 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... 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 13/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL • Ở sự kiên selectedIndexChanged của combobox viết như sau: private void cboSV_SelectedIndexChanged(object sender, EventArgs e) { if (cboSV.SelectedValue != null) {... 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 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 ... 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: DataTable tbl = new DataTable(); //lấy dữ liệu từ bảng SinhVien tbl = obj.getDataTable("sinhvien"); //Cho text hiện trong combobox... 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 12/16 Hướng dẫn thực hành - Lập trình Windows nâng cao phần CSDL • 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 . Mã phải chín xác: 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. tượng là MDI Parent Đặt tên form là frmChinh.cs 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ư. 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

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

TỪ KHÓA LIÊN QUAN

w