intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Hướng Dẫn Thực Hành Winform - phần 4 ADO.NET (tt)

Chia sẻ: Harry Tran | Ngày: | Loại File: PDF | Số trang:8

315
lượt xem
152
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'hướng dẫn thực hành winform - phần 4 ado.net (tt)', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Hướng Dẫn Thực Hành Winform - phần 4 ADO.NET (tt)

  1. Xây d ng ph n m m hư ng i tư ng GVHD: Tr n Anh Dũng HƯ NG D N TH C HÀNH TU N 4 Ch : ADO.NET (tt) Ph n 1: Các thao tác k t n i ADO.NET s d ng c u trúc dòng l nh v i namespace System.Data (tt). 1. Thi t k CSDL: a. S d ng l i CSDL c a tu n trư c (QLHOCSINH.mdb) HOCSINH STT Tên trư ng Ki u d li u Ghi chú 1 MaHS Text(10) PrimaryKey 2 TenHS Text(255) 3 NgaySinh Date/Time 4 DiaChi Text(255) 5 DTB Number 6 MaLop Text(10) ForeignKey (tham chi u n Lop(MaLop) LOP STT Tên trư ng Ki u d li u Ghi chú 1 MaLop Text(10) PrimaryKey 2 TenLop Text(255) 3 SiSo Number 2. S d ng l i ng d ng ã ư c hư ng d n trong tu n 3: Thi t k l i Form “Nh p thông tin h c sinh” như màn hình sau:
  2. Xây d ng ph n m m hư ng i tư ng GVHD: Tr n Anh Dũng K t qu màn hình khi ch y: DataGridView
  3. Xây d ng ph n m m hư ng i tư ng GVHD: Tr n Anh Dũng Vi t hàm load danh sách h c sinh vào DataGridView Ta vi t hàm getDSHocSinh có nhi m v tr v b ng thông tin h c sinh như sau: - private DataTable getDSHocSinh() { adapter = new OleDbDataAdapter("Select h.MaHS, h.TenHS, h.NgaySinh, h.DiaChi, h.DiemTB, l.TenLop From HOCSINH h, LOP l Where h.MaLop=l.MaLop", connection); dataSet = new DataSet(); adapter.Fill(dataSet); return dataSet.Tables[0]; } - Trong s ki n form load, ta g i hàm getDSHocSinh và gán k t qu cho datasource c a DataGridView private void Form1_Load(object sender, EventArgs e) { connect("E:/DH_HUFLIT/XDPMHDT/DeCuong_HuongDan_ThucHanh/HocSinh.mdb"); //Load d li u vào comboBox L p cboLop.DataSource = getDSLop(); // Column s ư c hi n th cboLop.DisplayMember = "TenLop"; ã hư ng d n trong tu n 3 // Column s ư c gi giá tr cboLop.ValueMember = "MaLop"; //Load danh sách h c sinh lên lư i dgHocSinh.DataSource = getDSHocSinh(); // nh d ng lư i nh d ng lư i hi n th DinhDangLuoi(); } danh sách h c sinh Hàm DinhDangLuoi như sau: private void DinhDangLuoi() { dgHocSinh.ReadOnly = true; dgHocSinh.Columns[0].HeaderText = "Mã HS"; dgHocSinh.Columns[0].Width = 70; dgHocSinh.Columns[1].HeaderText = "Tên HS"; dgHocSinh.Columns[1].Width = 150; dgHocSinh.Columns[2].HeaderText = "Ngày sinh"; dgHocSinh.Columns[2].Width = 90; dgHocSinh.Columns[3].HeaderText = " a ch "; dgHocSinh.Columns[3].Width = 200; dgHocSinh.Columns[4].HeaderText = " i m TB"; dgHocSinh.Columns[4].Width = 80; dgHocSinh.Columns[5].HeaderText = "L p"; dgHocSinh.Columns[5].Width = 80; }
  4. Xây d ng ph n m m hư ng i tư ng GVHD: Tr n Anh Dũng Khi ngư i dùng ch n m t row (ch n 1 h c sinh) trên lư i hi n th thông tin h c sinh v a ch n lên các control trên form ch nh s a và c p nh t thông tin. V y gi i pháp x lý ??? Sinh viên c n ph i Tìm hi u các s ki n phát sinh trên lư i DataGridView Trong trư ng h p này chúng ta x lý s ki n SelectionChanged: private void dgHocSinh_SelectionChanged(object sender, EventArgs e) { DataGridViewSelectedRowCollection rows = dgHocSinh.SelectedRows; if (rows.Count > 0) { DataGridViewRow row = rows[0]; txtMaHS.Text = row.Cells["MaHS"].Value.ToString(); txtTenHS.Text = row.Cells["TenHS"].Value.ToString(); if (row.Cells["NgaySinh"].Value.ToString().Length>0) dtNgaySinh.Value = DateTime.Parse(row.Cells["NgaySinh"].Value.ToString()); txtDiaChi.Text = row.Cells["DiaChi"].Value.ToString(); txtDiemTB.Text = row.Cells["DiemTB"].Value.ToString(); cboLop.Text = row.Cells["TenLop"].Value.ToString(); } } Sinh viên ph i x lý Khi ti n hành lưu thông tin c a m t h c sinh vào b ng HOCSINH ph i ki m tra xem có t n t i h c sinh này trong CSDL chưa? - N u chưa có thì insert (thêm m i) - N u t n t i thì update (c p nh t, s a)
  5. Xây d ng ph n m m hư ng i tư ng GVHD: Tr n Anh Dũng Khó khăn g p ph i c a ngư i dùng: ph i chép file HOCSINH.mdb vào úng v trí ã s d ng trong chương trình. Nghĩa là ư ng d n k t n i n CSDL c nh connect("E:/DH_HUFLIT/XDPMHDT/DeCuong_HuongDan_ThucHanh/HocSinh.mdb"); N u trên máy tính không t n t i ư ng d n này s phát sinhh l i và d ng chương trình. Gi i pháp kh c ph c tình tr ng này ??? Cho phép ngư i dùng ch ra ư ng d n v t lý lưu tr CSDL (ch n ư ng d n lưu tr CSDL) Bư c 1: Add thêm m t form m i (frmSelectPath) vào Project Thi t k giao di n cho Form m i như sau:
  6. Xây d ng ph n m m hư ng i tư ng GVHD: Tr n Anh Dũng Form “frmSelectPath” ph i ư c ch y u tiên ???
  7. Xây d ng ph n m m hư ng i tư ng GVHD: Tr n Anh Dũng Trong class Form1.cs khai báo bi n sPathFilename như sau: public static string sPathFilename = ""; Vi t code cho s ki n khi ngư i dùng ch n File : private void btnOK_Click(object sender, EventArgs e) { //Filter file openFileDialog1.Filter = "File (*.mdb)|*.mdb"; //Không cho phép ch n nhi u file openFileDialog1.Multiselect = false; //Set caption cho dialog openFileDialog1.Title = "Chon CSDL"; //Set tên file m c nh openFileDialog1.FileName = "HOCSINH.mdb"; //Hi n th h p tho i DialogResult dgResult = openFileDialog1.ShowDialog(); if (dgResult == DialogResult.OK) txtFile.Text = openFileDialog1.FileName; } Vi t code cho s ki n button “Load”: private void btnLoad_Click(object sender, EventArgs e) { Form1.sPathFilename = txtFile.Text; Form1 frm = new Form1(); this.Hide(); frm.ShowDialog(); }
  8. Xây d ng ph n m m hư ng i tư ng GVHD: Tr n Anh Dũng Như v y, trong Form1 chúng ta s a l i như sau: - Trong s ki n Form1_Load thay dòng l nh connect("E:/DH_HUFLIT/XDPMHDT/DeCuong_HuongDan_ThucHanh/HocSinh.mdb"); B ng dòng l nh sau: connect(sPathFilename); - Trong s ki n thoát ph i dùng l nh: Application.Exit(); thoát ng d ng ( b i vì dùng óng 1 form) this.Close() Sinh viên phát tri n ti p hoàn thi n chương trình 3. Bài t p: a. Ki m tra các ràng bu c v d li u b. Tìm hi u các s ki n c a DataGridView c. C i ti n màn hình giao di n nh p thông tin h c sinh ngư i dùng thao tác ti n l i và th t nhanh chóng i. Thi t k l i giao di n cho phép nh p danh sách h c sinh tr c ti p trên lư i (tư ng t như nh p li u trên file Excel) ii. Tìm hi u vi c add m t s control vào các c t trên DataGridView (Ví d : c t ngày sinh ph i add control “ch n ngày tháng năm”, c t L p ph i add control “ComboBox” và load d li u vào comboBox cho phép ch n l a trong khi nh p li u . iii. …
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0