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 3 ADO.NET

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

453
lượt xem
157
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 3 ado.net', 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 3 ADO.NET

  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 3 Ch : ADO.NET 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. 1. Thi t k CSDL: a. M ng d ng Microsoft Access b. Thi t k CSDL, t tên 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. Thi t k giao di n: T o project C# Window Application m i v i tên project là QLHS Thi t k 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 T o k t n i cơ s d li u b ng dòng l nh thao tác trên cơ s d li u s d ng ADO.NET ta c n có các i tư ng sau: - o Connection k t n i v i cơ s d li u.g m OleDbConnection và SqlConnection. o Command th c thi các câu l nh truy v n, th c thi các store procedure... bao g m OleDbCommand và SqlCommand o DataAdapter th c hi n ánh x d li u vào DataSet thông qua connection ã có bao g m OleDbDataAdapter và SqlDataAdapter. o DataSet ch a d li u thu ư c ho c x lý l y t cơ s d li u. DataSet là t p h p g m các thành ph n DataTable (tương ng v i t ng View trong cơ s d li u), DataColumn (tương ng v i Field trong CSDL) và DataRow (tương ng v i record trong CSDL). k t n i v i CSDL Access, ta s d ng OleDb. Ta khai báo s d ng namespace như sau: - using System.Data; using System.Data.OleDb; - Ta khai báo các bi n c n s d ng x lý CSDL. private OleDbConnection connection; private OleDbDataAdapter adapter; private DataSet dataSet; private OleDbCommand command; Hàm connect cơ s d li u - Ta vi t hàm connect có nhi m v k t n i cơ s d li u như sau: private void connect(string file) {
  3. Xây d ng ph n m m hư ng i tư ng GVHD: Tr n Anh Dũng string connnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + file; connection = new OleDbConnection(connnectionString); } - Trong s ki n form load, ta g i hàm connect kh i t o connection private void Form1_Load(object sender, EventArgs e) { connect("E:/DH_HUFLIT/XDPMHDT/DeCuong_HuongDan_ThucHanh/HocSinh.mdb"); } Hàm l y danh sách l p k t v i combobox private DataTable getDSLop() { adapter = new OleDbDataAdapter("select * from LOP", connection); dataSet = new DataSet(); adapter.Fill(dataSet); return dataSet.Tables[0]; } - Trong s ki n formLoad, ta g i hàm l y danh sách l p và k t vào combobox 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"; // Column s ư c gi giá tr cboLop.ValueMember = "MaLop"; } L y thông tin t form vào các bi n - Khai báo các bi n sau: private string maHS, tenHS, diachi, malop; private double dtb; private DateTime ngaysinh; - Hàm l y thông tin: private void getData() { maHS = txtMaHS.Text; tenHS = txtTenHS.Text; ngaysinh = dtpNgaySinh.Value; diachi = txtDiaChi.Text; malop = (string)cmbLop.SelectedValue; dtb = Double.Parse(txtDiemTB.Text); } Hàm thêm d li u vào CSDL private void insert() { connection.Open(); string insertCommand = "INSERT INTO HOCSINH VALUES('" + maHS + "', '" +
  4. Xây d ng ph n m m hư ng i tư ng GVHD: Tr n Anh Dũng tenHS + "', '" + ngaysinh.ToShortDateString() + "', '" + diachi + "', " + dtb + ", '" + malop + "')"; command = new OleDbCommand(insertCommand, connection); command.ExecuteNonQuery(); connection.Close(); } - Trong s ki n Click c a btnLuu ta th c hi n lưu thông tin vào CSDL private void btnLuu_Click(object sender, EventArgs e) { getData(); insert(); MessageBox.Show("Cap nhat thanh cong", "Thong bao", MessageBoxButtons.OK, MessageBoxIcon.Information); } Hàm xóa d li u kh i CSDL - Tương t ta có hàm xóa d li u private void delete() { connection.Open(); string deleteCommand = "DELETE FROM HOCSINH WHERE MaHS = '"+maHS+"'"; command = new OleDbCommand(deleteCommand, connection); command.ExecuteNonQuery(); connection.Close(); } - Trong s ki n Click c a btnXoa ta th c hi n xóa thông tin t CSDL private void btnXoa_Click(object sender, EventArgs e) { getData(); delete(); MessageBox.Show("Xoa du lieu thanh cong", "Thong bao", MessageBoxButtons.OK, MessageBoxIcon.Information); } 3. Bài t p: a. Ki m tra d li u nh p h p l : i. Mã h c sinh và tên h c sinh ph i khác null ii. i m trung bình ph i nh p giá tr s iii. … b. Th c hi n ch c năng khi ngư i dùng nh p mã HS ã có, chương trình s hi n th thông tin HS cho phép ngư i nh p s a i và lưu l i thông tin HS ã ư c s a. ngăn ch n kh năng phát sinh l i ??? c. Không cho phép nh p các ký t không ph i là ký t s vào textbox “ i m trung bình”
  5. Xây d ng ph n m m hư ng i tư ng GVHD: Tr n Anh Dũng Gi i pháp ??? X lý s ki n nh p phím (KeyPress) cho textbox “ i m trung bình” d. Khi nh p d li u cho m t control xong, ngư i dùng mu n chuy n qua contol ti p theo nh p li u thì ph i nh n phím “tab” chuy n focus sang control k ti p. Tuy nhiên, i v i nhi u ngư i dùng, h l i quen v i thao tác nh n phím “Enter” chuy n qua control ti p theo Gi i pháp??? Hư ng d n: x lý s ki n KeyPress c a control tương ng Khi ngư i dùng nh n m t phím, ki m tra xem phím ó có ph i là phím “Enter” không? N u là phím “Enter” thì g i phím “TAB” private void txtMaHS_KeyPress(object sender, KeyPressEventArgs e) { //N u nh n phím enter if (e.KeyChar == 13) SendKeys.Send("{TAB}"); } e. Sinh viên t phát tri n ti p hoàn thi n chương trình trên
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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