Giáo trình Mô đun Lập trình trực quan

Kiến trúc .NET Framework

.NET Framework là một platform mới làm đơn giản việc phát triển ứng

dụng trong môi trường phân tán của Internet. .NET Framework được thiết kế đầy

đủ để đáp ứng theo quan điểm sau:

Để cung cấp một môi trường lập trình hướng đối tượng vững chắc, trong

đó mã nguồn đối tượng được lưu trữ và thực thi một cách cục bộ. Thực thi cục bộ

nhưng được phân tán trên Internet, hoặc thực thi từ xa.

Để cung cấp một môi trường thực thi mã nguồn mà tối thiểu được việc đóng

gói phần mềm và sự tranh chấp về phiên bản.

Để cung cấp một môi trường thực thi mã nguồn mà đảm bảo việc thực thi

an toàn mã nguồn, bao gồm cả việc mã nguồn được tạo bởi hãng thứ ba hay bất

cứ hãng nào mà tuân thủ theo kiến trúc .NET.

Để cung cấp một môi trường thực thi mã nguồn mà loại bỏ được những lỗi

thực hiện các script hay môi trường thông dịch.

Để làm cho những người phát triển có kinh nghiệm vững chắc có thể nắm

vững nhiều kiểu ứng dụng khác nhau. Như là từ những ứng dụng trên nền

Windows đến những ứng dụng dựa trên web.

Để xây dựng tất cả các thông tin dựa triên tiêu chuẩn công nghiệp để đảm

bảo rằng mã nguồn trên .NET có thể tích hợp với bất cứ mã ng

Giáo trình Mô đun Lập trình trực quan trang 1

Trang 1

Giáo trình Mô đun Lập trình trực quan trang 2

Trang 2

Giáo trình Mô đun Lập trình trực quan trang 3

Trang 3

Giáo trình Mô đun Lập trình trực quan trang 4

Trang 4

Giáo trình Mô đun Lập trình trực quan trang 5

Trang 5

Giáo trình Mô đun Lập trình trực quan trang 6

Trang 6

Giáo trình Mô đun Lập trình trực quan trang 7

Trang 7

Giáo trình Mô đun Lập trình trực quan trang 8

Trang 8

Giáo trình Mô đun Lập trình trực quan trang 9

Trang 9

Giáo trình Mô đun Lập trình trực quan trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 72 trang duykhanh 6900
Bạn đang xem 10 trang mẫu của tài liệu "Giáo trình Mô đun Lập trình trực quan", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Mô đun Lập trình trực quan

Giáo trình Mô đun Lập trình trực quan
/ Tạo ra hằng ký tự khoảng trắng 
 const char Space = ' '; 
 // Gán giá trị cho chuỗi 
 string s = hoten.Trim(); 
 // Đổi chuỗi 
 string kq = "Chuỗi rỗng!"; if 
 (s.Length == 0) 
 return kq; 
 else 
 { kq = ""; 
 string [] s1 = s.Split(Space); foreach (string tu in s1) { 
 string ss = tu[0].ToString(); kq += ss.ToUpper(); 
 kq += tu.Substring(1,tu.Length-1); kq += " ";} 
 return kq.Trim(); 
 } 
3. Phương thức ( Method ) 
 Thuộc tính (Properties): Thuộc tính là những thông tin có thể thay đổi được. 
 Thuộc tính truy cập 
 Thuộc tính Giới hạn truy cập 
 public Không hạn chế. Những thành viên được đánh dấu public 
 có thể được dùng bất kỳ các phương thức của lớp, bao 
 gồm cả những lớp khác. 
 private Thành viên trong lớp được đánh dấu private chỉ được 
 dùng các 
 phương thức của lớp này mà thôi. 
 Protected Thành viên trong lớp được đánh dấu protected chỉ được 
 dùng các phương thức của lớp này; và các phương thức 
 của lớp dẫn xuất từ lớp này. 
 Internal Thành viên trong lớp được đánh dấu là internal được 
 dùng các 
 protected Thànhphương viênthức củatrong bất kỳlớp lớp được nào cùngđánh khối dấu hợp là ngữprotected với lớp 
 internal internalnày. được dùng các phương thức của lớp này; các 
 phương thức của lớp dẫn xuất từ lớp này; và các phương 
 thức của bất kỳ lớp nào trong cùng khối hợp ngữ với lớp 
 Phương thức (Method)này. 
 - Phương thức (method) chính là các hàm (function) được tạo trong lớp (class). 
 - Tên của phương thức thường được đặt theo tên của hành động. 
 Tham số của phương thức 
 - Các tham số theo sau tên phương thức và được bọc bên trong dấu ngoặc 
 tròn (). 
 - Mỗi tham số phải khai báo kèm theo kiểu dữ liệu. 
 - Trong C# có 2 dạng truyền tham số: 
 + Truyền tham chiếu: dùng thêm từ khóa ref. 
 + Truyền tham trị 
 b) Ví dụ: 
 * Truyền tham số cho phương thức theo kiểu tham 
 chiếu public class Hoandoi 
 { 
 public void HoanVi(ref int a, ref int b) 
 { 
 int c = 
 a ; a = b 
 ; 
 b = c ; 
 } 
 } 
 Khi đó: khi gọi hàm HoanVi ta phải truyền tham số dưới dạng tham chiếu như 
 sau: 
HoanDoi s = new HoanDoi(); 
s.HoanVi(ref a, ref b); 
 BÀI 5: LẬP TRÌNH KẾT NỐI CSDL 
1. Tạo kết nối 
 - Tên máy được sử dụng (SERVERNAME) là PC-PC 
 - Database được sử dụng (DATABASENAME) là QuanLyBanHang, gồm có 
 các table: 
 + Nhanvien + HoaDon 
 + Sanpham + ChiTietHoaDon 
 + Khachhang + ThanhPho 
 - Với quan hệ (Relationship) như sau: 
Khai báo namespace sử dụng 
 using System.Data.SqlClient; 
Khai báo ở mức class 
 // Chuỗi kết nối 
 string strConnectionString = "Data Source=SERVERNAME;Initial 
 Catalog=DATABASENAME;Integrated Security=True"; 
 // Đối tượng kết nối 
 SqlConnection conn = null; 
 // Đối tượng đưa dữ liệu vào DataTable dtTABLENAME 
 SqlDataAdapter daTABLENAME = null; 
 // Đối tượng hiển thị dữ liệu lên Form DataTable 
 dtTABLENAME = null; 
 // Khởi động kết nối 
 conn = new SqlConnection(strConnectionString); 
 // Vận chuyển dữ liệu lên DataTable dtTABLENAME 
 daTABLENAME = new SqlDataAdapter("SELECT * 
 FROM TABLENAME",conn); 
 dtTABLENAME = new DataTable(); 
 daTABLENAME.Fill(dtTABLENAME); 
Khai báo ở Form Load 
 // Khởi động kết nối 
 conn = new SqlConnection(strConnectionString); 
 // Vận chuyển dữ liệu lên DataTable dtTABLENAME 
 daTABLENAME = new SqlDataAdapter("SELECT * 
 FROM TABLENAME",conn); 
 dtTABLENAME = new DataTable(); 
 daTABLENAME.Fill(dtTABLENAME); 
Giải phóng tài nguyên 
 . Chuyển Form về chế độ Design View 
 . Ở cửa sổ properties của form đang chọn, click Events 
 . Nhắp đúp lên sự kiện FormClosing 
 . Viết code cho sự kiện này như sau: 
 // Giải phóng tài nguyên 
 dtTABLENAME.Dispose(); 
 dtTABLENAME = null; 
 // Hủy kết nối 
 conn = null; 
2. Sử dụng control 
3. Các thao tác trên dữ liệu 
 Xóa (btnXoa): xóa record hiện hành ra khỏi table KhachHang. 
 * Hướng dẫn: 
 - Xóa: Nhắp đúp vào Button Xóa, thực hiện như sau 
 // Mở kết 
 nối 
 conn.Open
 (); try 
 { 
 // Thực hiện lệnh 
 SqlCommand cmd = new 
 SqlCommand(); cmd.Connection = 
 conn; cmd.CommandType = 
 CommandType.Text; 
 // Lấy thứ tự record hiện hành 
 int r = dgvKHACHHANG.CurrentCell.RowIndex; 
 // Lấy MaKH của record hiện hành 
 string strMAKH = 
 dgvKHACHHANG.Rows[r].Cells[0].Value.ToString(); 
 // Viết câu lệnh SQL 
 cmd.CommandText = System.String.Concat("Delete From 
 KhachHang Where MaKH='" + strMAKH + "'"); 
 cmd.CommandType = CommandType.Text; 
 cmd.ExecuteNonQuery(); 
 // Cập nhật lại DataGridView 
 LoadData(); 
 // Thông báo 
 MessageBox.Show("Đã xóa xong!"); 
} 
catch (SqlException) 
{ 
 MessageBox.Show("Không xóa được. Lỗi rồi!!!"); 
} 
// Đóng kết nối 
conn.Close(); 
+ 4 TextBox: txtMaKH, txtTenCty, txtDiachi, txtDienthoai 
+ 1 ComboBox: cbThanhpho 
 - 4 Button: btnThem, btnSua, btnLuu, btnHuy 
 * Yêu cầu: 
 - Thiết kế không cho người dùng thao tác (Enabled = false) khi load form: 
+ Panel 
 + Các Button Lưu, Hủy 
 - Điều chỉnh lại thuộc tính (properties) của DataGridView 
+ AllowUserToAddRows = False 
+ EditMode = EditProgrammatically 
 - Khi Form load: đưa dữ liệu từ table KhachHang lên DataGridView 
 (dgvKHACHHANG), 
 có bẫy lỗi. 
 - Nhắp vào Button ReLoad: load lại nội dung table KhachHang lên 
 dgvKHACHHANG 
 - Nhắp vào Button Thêm: 
+ Xóa trống các đối tượng trong Panel. 
+ Cho phép nhập thông tin khách hàng vào các đối tượng trên Panel 
 + Không cho phép thao tác trên các Button: Thêm, Sửa, Xóa, Thoát. 
+ Cho phép thao tác trên các Button: Lưu, Hủy. 
 - Nhắp vào Button Sửa: 
+ Đưa thông tin của khách hàng đang được chọn trong DataGridView lên Panel. 
+ Cho phép nhập / sửa thông tin khách hàng vào / trong các đối tượng trên Panel. 
 + Không cho phép thao tác trên các Button: Thêm, Sửa, Xóa, Thoát. 
+ Cho phép thao tác trên các Button: Lưu, Hủy. 
 - Nhắp vàp Button Lưu. 
+ Insert / Update thông tin khách hàng từ Panel vào table KhachHang. 
+ ReLoad lại DataGridView 
 - Nhắp vàp Button Hủy: 
+ Xóa trống các đối tượng trong Panel. 
+ Không cho phép nhập thông tin khách hàng vào các đối tượng trên Panel 
 Hướng dẫn: 
 - Thiết kế bổ sung Panel với 4 TextBox và 1 ComboBox, Panel có Enabled = 
 false 
 - Ờ mức class, bổ sung khai báo biến như sau: 
// Khai báo biến kiểm tra việc Thêm hay Sửa dữ liệu 
bool Them; 
 - Hàm LoadData(): bổ sung dưới hàng 
// Đưa dữ liệu lên DataGridView 
dgvKHACHHANG.DataSource = dtKhachHang; 
 đoạn code sau 
// Xóa trống các đối tượng trong Panel 
this.txtMaKH.ResetText(); this.txtTenCty.ResetText(); 
this.txtDiaChi.ResetText(); 
this.txtDienThoai.ResetText(); 
// Không cho thao tác trên các nút Lưu / Hủy 
this.btnLuu.Enabled = false; this.btnHuy.Enabled = false; 
this.panel.Enabled = false; 
// Cho thao tác trên các nút Thêm / Sửa / Xóa / Thoát 
this.btnThem.Enabled = true; this.btnSua.Enabled = 
true; this.btnXoa.Enabled = true; 
this.btnThoat.Enabled = true; 
 - Thêm: nhắp đúp vào button Thêm, bổ sung đoạn code 
// Kich hoạt biến Them 
Them = true; 
// Xóa trống các đối tượng trong Panel 
this.txtMaKH.ResetText(); this.txtTenCty.ResetText(); 
this.txtDiaChi.ResetText(); 
this.txtDienThoai.ResetText(); 
// Cho thao tác trên các nút Lưu / Hủy / Panel 
this.btnLuu.Enabled = true; this.btnHuy.Enabled = true; 
this.panel.Enabled = true; 
// Không cho thao tác trên các nút Thêm / Xóa / Thoát this.btnThem.Enabled = 
false; 
this.btnSua.Enabled = false; this.btnXoa.Enabled = 
false; this.btnThoat.Enabled = false; 
// Đưa dữ liệu lên ComboBox this.cbThanhPho.DataSource = 
dtThanhPho; this.cbThanhPho.DisplayMember = 
"TenThanhPho"; this.cbThanhPho.ValueMember = "ThanhPho"; 
// Đưa con trỏ đến TextField txtMaKH 
this.txtMaKH.Focus(); 
- Sửa: Nhắp đúp vào button Sửa, bổ sung đoạn 
code 
// Kích hoạt biến Sửa 
Them = false; 
// Đưa dữ liệu lên ComboBox this.cbThanhPho.DataSource = 
dtThanhPho; this.cbThanhPho.DisplayMember = 
"TenThanhPho"; this.cbThanhPho.ValueMember = "ThanhPho"; 
// Cho phép thao tác trên Panel this.panel.Enabled = 
true; 
// Thứ tự dòng hiện hành 
int r = dgvKHACHHANG.CurrentCell.RowIndex; 
// Chuyển thông tin lên panel this.txtMaKH.Text = 
 dgvKHACHHANG.Rows[r].Cells[0].Value.ToString(); 
 this.txtTenCty.Text = 
 dgvKHACHHANG.Rows[r].Cells[1].Value.ToString(); 
 this.txtDiaChi.Text = 
 dgvKHACHHANG.Rows[r].Cells[2].Value.ToString(); 
 this.cbThanhPho.SelectedValue = 
 dgvKHACHHANG.Rows[r].Cells[3].Value.ToString(); 
 this.txtDienThoai.Text = 
 dgvKHACHHANG.Rows[r].Cells[4].Value.ToString(); 
// Cho thao tác trên các nút Lưu / Hủy / Panel 
this.btnLuu.Enabled = true; this.btnHuy.Enabled = true; 
this.panel.Enabled = true; 
// Không cho thao tác trên các nút Thêm / Xóa / Thoát this.btnThem.Enabled = 
false; 
this.btnSua.Enabled = false; this.btnXoa.Enabled = 
false; this.btnThoat.Enabled = false; 
// Đưa con trỏ đến TextField txtMaKH 
this.txtMaKH.Focus(); 
 - Lưu: Nhắp đúp vào button Lưu, bổ sung đoạn code 
// Mở kết nối 
conn.Open(); 
// Thêm dữ liệu 
if (Them) 
{ 
 Try { // Thực hiện lệnh 
 SqlCommand cmd = new SqlCommand(); cmd.Connection 
 = conn; 
 cmd.CommandType = CommandType.Text; 
 // Lệnh Insert InTo 
 cmd.CommandText = System.String.Concat("Insert Into 
 KhachHang Values(" + "'" + 
 this.txtMaKH.Text.ToString() + "','" + 
 this.txtTenCty.Text.ToString() + "','" + 
 this.txtDiaChi.Text.ToString() + "','" + 
 this.cbThanhPho.SelectedValue.ToString() + "','" + 
 this.txtDienThoai.Text.ToString() + "')"); 
 cmd.CommandType = CommandType.Text; 
 cmd.ExecuteNonQuery(); 
 // Load lại dữ liệu trên DataGridView LoadData(); 
 // Thông báo 
 MessageBox.Show("Đã thêm xong!"); 
 } 
 catch (SqlException) 
 { 
 MessageBox.Show("Không thêm được. Lỗi rồi!"); 
 } 
} 
if (!Them) 
{ 
 Try { // Thực hiện lệnh 
 SqlCommand cmd = new SqlCommand(); cmd.Connection = 
 conn; cmd.CommandType = CommandType.Text; 
 // Thứ tự dòng hiện hành 
 int r = dgvKHACHHANG.CurrentCell.RowIndex; 
 // MaKH hiện hành string strMAKH = 
 dgvKHACHHANG.Rows[r].Cells[0].Value.ToString(); 
 // Câu lệnh SQL 
 cmd.CommandText = System.String.Concat("Update KhachHang Set 
 TenCty='" + this.txtTenCty.Text.ToString() + "', DiaChi='" 
 + this.txtDiaChi.Text.ToString() + "', ThanhPho='" + 
 this.cbThanhPho.SelectedValue.ToString() + "', DienThoai='" + 
 this.txtDienThoai.Text.ToString() + "' Where MaKH='" + strMAKH + "'"); 
 // Cập nhật 
 cmd.CommandType = CommandType.Text; 
 cmd.ExecuteNonQuery(); 
 // Load lại dữ liệu trên DataGridView 
 LoadData(); 
 // Thông báo 
 MessageBox.Show("Đã sửa xong!"); catch 
 (SqlException) 
 { 
 MessageBox.Show("Không sửa được. Lỗi rồi!"); 
 } 
} 
// Đóng kết nối 
conn.Close(); 
 - Hủy: Nhắp đúp vào button Hủy, bổ sung đoạn code 
// Xóa trống các đối tượng trong Panel 
this.txtMaKH.ResetText(); this.txtTenCty.ResetText(); 
this.txtDiaChi.ResetText(); 
this.txtDienThoai.ResetText(); 
// Cho thao tác trên các nút Thêm / Sửa / Xóa / Thoát 
this.btnThem.Enabled = true; this.btnSua.Enabled = 
true; this.btnXoa.Enabled = true; 
this.btnThoat.Enabled = true; 
// Không cho thao tác trên các nút Lưu / Hủy / Panel 
this.btnLuu.Enabled = false; 
this.btnHuy.Enabled = false; 
this.panel.Enabled = false;
 BAI 6: XÂY DỰNG ỨNG DỤNG 
1. Chuẩn bị 
 - Tên máy được sử dụng (SERVERNAME) là PC-PC (thay đổi cho đúng máy 
 đang dùng!) 
 - Database được sử dụng (DATABASENAME) là QuanLyBanHang, gồm có 
 các table sau: 
 + ThanhPho + Sanpham 
 + Khachhang + Hoadon 
 + Nhanvien + ChitietHoadon 
 - Với quan hệ (Relationship) như sau: 
 - Khởi động SQL Server 2008, tạo một DataBase mới có tên 
 QuanLyBanHang, import dữ liệu từ file QuanLyBanHang.mdb 
 - Khởi động Visual Studio 2008, tạo một project mới (Windows Forms 
 Application), lưu với tên QUANLYBANHANG 
2. Sử dụng Control 
* Yêu cầu: 
 Khi Form1 được thực hiện sẽ thể hiện màn hình “Đăng nhập hệ thống” là 
 Form2. 
* Hướng dẫn: 
 - Ờ mức class, khai báo hàm frmLogin() 
 như sau: Form frm = new Form2(); 
 frm.ShowDialog(); 
 - Form Load: 
frmlogin(); 
 (Form2 – Màn hình Đăng nhập - login) 
Viết chương trình thể hiện màn hình “Đăng nhập” (login) như sau: 
Form1 – Hệ thống Menu) 
 Thêm vào Form1, hệ thống menu như sau 
Form1 – Menu Hệ thống) 
* Yêu cầu: Trên Form1, viết lệnh cho menu hệ thống như sau 
 - Khi chọn menu “Hệ thống \ Đăng nhập” sẽ thực hiện đăng nhập lại hệ 
 thống (Form2). 
 - Khi chọn menu “Hệ thống \ Thoát” sẽ dừng chương trình. 
* Hướng dẫn: 
 - Menu “Hệ thống \ Đăng nhập”: Nhắp đúp vào menu “Hệ thống \ Đăng 
nhập”, gõ vào 
đoạn code sau: 
 frmlogin(); 
 - Menu “Hệ thống \ Thoát”: Nhắp đúp vào menu “Hệ thống \ Đăng 
nhập”, gõ vào đoạn code sau: 
 DialogResult traloi; 
 traloi = MessageBox.Show("Chắc không?", "Trả lời", 
 MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if ( 
 traloi == DialogResult.OK) 
 Application.Exit();
3. Sử dụng CSDL 
 a) (Form1 – Menu Danh mục) 
 * Yêu cầu: Trên Form1, viết lệnh cho menu danh mục như sau 
 - Viết hàm XemDanhMuc(int intDanhMuc) thực hiện mở Form3 và 
 gánForm3.Text = intDanhMuc. 
 - Khi chọn menu “Xem Danh mục \ ” sẽ thực hiện gọi hàm 
 XemDanhMuc(), với là giá trị tương ứng với danh mục được 
 chọn. 
 * Hướng dẫn: 
 - Ờ mức class, khai báo hàm XemDanhMuc(int intDanhMuc) như sau: 
 // Hàm xemm danh mục 
 void XemDanhMuc(int intDanhMuc) 
 { 
 Form frm = new Form3(); 
 frm.Text = intDanhMuc.ToString(); 
 frm.ShowDialog(); 
 } 
 - Menu “Xem Danh mục \ Danh mục Thành Phố”: Nhắp đúp vào 
 menu “Xem Danh 
 mục \ Danh mục Thành Phố”, gõ vào đoạn code sau: 
 XemDanhMuc(1); 
 - Menu “Xem Danh mục \ Danh mục Khách Hàng”: Nhắp đúp vào 
 menu “Xem Danh 
 mục \ Danh mục Khách Hàng”, gõ vào đoạn code sau: 
 XemDanhMuc(2); 
 - Menu “Xem Danh mục \ Danh mục Nhân Viên”: Nhắp đúp vào 
 menu “Xem Danh 
 mục \ Danh mục Nhân Viên”, gõ vào đoạn code sau: 
 XemDanhMuc(3); 
 - Menu “Xem Danh mục \ Danh mục Sản Phẩm”: Nhắp đúp vào 
 menu “Xem Danh mục \ Danh mục Sản Phẩm”, gõ vào đoạn code sau: 
 XemDanhMuc(4); 
 - Menu “Xem Danh mục \ Danh mục Hóa Đơn”: Nhắp đúp vào menu “Xem 
 Danh mục 
 \ Danh mục Hóa Đơn”, gõ vào đoạn code sau: 
 XemDanhMuc(5); 
 - Menu “Xem Danh mục \ Danh mục Chi Tiết Hóa Đơn”: Nhắp đúp vào 
 menu “Xem 
 Danh mục \ Danh mục Chi Tiết Hóa Đơn”, gõ vào đoạn code sau: 
 XemDanhMuc(6); 
 b) (Form3) Thiết kế Form3 theo mẫu như sau 
(Form4 – Menu Quản lý danh mục đơn \ Danh mục Thành Phố ) 
* Yêu cầu: 
- Trên Form1: khi chọn menu “Quản lý danh mục đơn \ Danh mục Thành 
Phố” sẽ mở Form4. 
- Trên Form4: Thiết kế như sau: 
(Form5 – Menu Quản lý danh mục đơn \ Danh mục Khách Hàng) 
* Yêu cầu: 
- Trên Form1: khi chọn menu “Quản lý danh mục đơn \ Danh mục Khách 
Hàng” sẽ mở Form5. 
- Trên Form5: thiết kế như sau 
Form6 – Menu Quản lý danh mục đơn \ Danh mục Nhân Viên) 
* Yêu cầu: 
- Trên Form1: khi chọn menu “Quản lý danh mục đơn \ Danh mục Nhân 
Viên” sẽ mở Form6. 
- Trên Form6: thiết kế như sau 

File đính kèm:

  • pdfgiao_trinh_mo_dun_lap_trinh_truc_quan.pdf