YOMEDIA
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
317
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ả
AMBIENT/
Chủ đề:
Nội dung Text: Hướng Dẫn Thực Hành Winform - phần 4 ADO.NET (tt)
- 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:
- 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
- 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;
}
- 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)
- 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:
- 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 ???
- 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();
}
- 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. …
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...