Giáo trình Lập trình C# 2008 cơ bản
MỤC LỤC
Chương 1. Cơ bản ngôn ngữ C# . 1
I. Giới thiệu ngôn ngữ C# 2008 . 1
II. Môi trường lập trình . 2
III. Biến, hằng, toán tử . 3
IV. Quy ước lập trình, ứng dụng Console Application trong Visual Studio 2008 . 5
V. Kiểu dữ liệu . 9
VI. Cấu trúc điều khiển . 10
VII. Cấu trúc lặp . 12
Chương 2. Xây dựng Windows Forms Application . 15
I. Sử dụng Visual Studio 2008 . 15
II. Các control cơ bản: Label, TextBox, Button, CheckBox, . 18
III. Menu và ToolBar . 30
IV. Common Dialog . 30
Chương 3. Array – String – Exception . 34
I. Mảng 1 chiều . 34
II. Mảng nhiều chiều . 37
III. String . 40
IV. Exception . 45
Chương 4. Class – Object - Method . 47
I. Khái niệm . 47
II. Định nghĩa lớp (Class) . 47
III. Phương thức (Method) . 50
Chương 5. SQL Server 2008 . 54
I. Tổng quan về SQL . 54
II. Tổng quan về CSDL quan hệ . 55
III. Table (Bảng) . 58
IV. Câu lệnh truy vấn . 66
V. Một số hàm thường dùng trong SQL Server . 70
Chương 6. Lập trình kết nối CSDL SQL Server 2008 . 72
I. Tạo kết nối – Vận chuyển dữ liệu. . 72
II. Sử dụng control . 73
III. Các thao tác trên dữ liệu: Thêm - Sửa - Xóa với ADO.NET . 78
Chương 7. Xây dựng ứng dụng . 85
I. Chuẩn bị. . 85
II. Sử dụng control . 85
III. Sử dụng database . 88
Đơn"; daTable = new SqlDataAdapter("SELECT MaHD, MaKH, MaNV FROM HOADON", conn); break; case 6: lblDM.Text = "Danh Mục Chi Tiết Hóa Đơn"; daTable = new SqlDataAdapter("SELECT * FROM CHITIETHOADON", conn); break; default: break; } // Vận chuyển dữ liệu lên DataTable dtTable dtTable = new DataTable(); dtTable.Clear(); daTable.Fill(dtTable); // Đưa dữ liệu lên DataGridView dgvDANHMUC.DataSource = dtTable; // Thay đổi độ rộng cột dgvDANHMUC.AutoResizeColumns(); } catch (SqlException) { MessageBox.Show("Không lấy được nội dung trong table. Lỗi rồi!!!"); Lưu hành nội bộ Trang 91 } } - Trở Về: Nhắp đúp vào button Trở Về, thêm vào đoạn code sau this.Close(); Câu 06: (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: (panel, txtThanhPho, txtTenThanhPho, dgvTHANHPHO, btnReLoad, btnThem, btnSua, btnXoa, btnLuu, btnHuyBo, btnTroVe) * Hướng dẫn: a) (Form1 – Menu Quản lý danh mục đơn) - Menu “Quản lý danh mục đơn \ Danh mục Thành Phố”: Nhắp đúp vào menu “Quản lý danh mục đơn \ Danh mục Thành Phố”, gõ vào đoạn code sau: Form frm = new Form4(); frm.Text = "Quản lý Danh mục Thành Phố"; frm.ShowDialog(); b) (Form4) Thiết kế Form4 như mẫu - Khai báo namespace sử dụng: using System.Data.SqlClient; - Ờ mức class, khai báo như sau: // Chuỗi kết nối string strConnectionString = "Data Source=PC-PC;Initial Catalog=QuanLyBanHang;Integrated Security=True"; // Đối tượng kết nối SqlConnection conn = null; Lưu hành nội bộ Trang 92 // Đối tượng đưa dữ liệu vào DataTable dtThanhPho SqlDataAdapter daThanhPho = null; // Đối tượng hiển thị dữ liệu lên Form DataTable dtThanhPho = null; // Khai báo biến kiểm tra việc Thêm hay Sửa dữ liệu bool Them; void LoadData() { try { // Khởi động connection conn = new SqlConnection(strConnectionString); // Vận chuyển dữ liệu lên DataTable dtThanhPho daThanhPho = new SqlDataAdapter("SELECT * FROM THANHPHO", conn); dtThanhPho = new DataTable(); dtThanhPho.Clear(); daThanhPho.Fill(dtThanhPho); // Đưa dữ liệu lên DataGridView dgvTHANHPHO.DataSource = dtThanhPho; // Thay đổi độ rộng cột dgvTHANHPHO.AutoResizeColumns(); // Xóa trống các đối tượng trong Panel this.txtThanhPho.ResetText(); this.txtTenThanhPho.ResetText(); // Không cho thao tác trên các nút Lưu / Hủy this.btnLuu.Enabled = false; this.btnHuyBo.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.btnTroVe.Enabled = true; } catch (SqlException) { MessageBox.Show("Không lấy được nội dung trong table THANHPHO. Lỗi rồi!!!"); } } - Form Load: LoadData(); - FormClosing: // Giải phóng tài nguyên dtThanhPho.Dispose(); dtThanhPho = null; Lưu hành nội bộ Trang 93 // Hủy kết nối conn = null; - ReLoad: Nhắp đúp vào button ReLoad, thêm vào đoạn code sau LoadData(); - Trở Về: Nhắp đúp vào button Trở Về, thêm vào đoạn code sau this.Close(); - Thêm: Nhắp đúp vào button Thêm, thêm vào đoạn code sau // Kich hoạt biến Them Them = true; // Xóa trống các đối tượng trong Panel this.txtThanhPho.ResetText(); this.txtTenThanhPho.ResetText(); // Cho thao tác trên các nút Lưu / Hủy / Panel this.btnLuu.Enabled = true; this.btnHuyBo.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.btnTroVe.Enabled = false; // Đưa con trỏ đến TextField txtThanhPho this.txtThanhPho.Focus(); - Sửa: Nhắp đúp vào button Sửa, thêm vào đoạn code sau // Kích hoạt biến Sửa Them = false; // Cho phép thao tác trên Panel this.panel.Enabled = true; // Thứ tự dòng hiện hành int r = dgvTHANHPHO.CurrentCell.RowIndex; // Chuyển thông tin lên panel this.txtThanhPho.Text = dgvTHANHPHO.Rows[r].Cells[0].Value.ToString(); this.txtTenThanhPho.Text = dgvTHANHPHO.Rows[r].Cells[1].Value.ToString(); // Cho thao tác trên các nút Lưu / Hủy / Panel this.btnLuu.Enabled = true; this.btnHuyBo.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.btnTroVe.Enabled = false; // Đưa con trỏ đến TextField txtMaKH this.txtThanhPho.Focus(); - Xóa: Nhắp đúp vào button Xóa, thêm vào đoạn code sau // Mở kết nối conn.Open(); Lưu hành nội bộ Trang 94 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 = dgvTHANHPHO.CurrentCell.RowIndex; // Lấy MaKH của record hiện hành string strTHANHPHO = dgvTHANHPHO.Rows[r].Cells[0].Value.ToString(); // Viết câu lệnh SQL cmd.CommandText = System.String.Concat("Delete From ThanhPho Where ThanhPho='" + strTHANHPHO + "'"); cmd.CommandType = CommandType.Text; // Thực hiện câu lệnh SQL 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(); - Hủy Bỏ: Nhắp đúp vào button Hủy Bỏ, thêm vào đoạn code sau // Xóa trống các đối tượng trong Panel this.txtThanhPho.ResetText(); this.txtTenThanhPho.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.btnTroVe.Enabled = true; // Không cho thao tác trên các nút Lưu / Hủy / Panel this.btnLuu.Enabled = false; this.btnHuyBo.Enabled = false; this.panel.Enabled = false; - Lưu: Nhắp đúp vào button Lưu, thêm vào đoạn code sau // Mở kết nối conn.Open(); // Thêm dữ liệu if (Them) { try { Lưu hành nội bộ Trang 95 // 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 ThanhPho Values(" + "'" + this.txtThanhPho.Text.ToString() + "','" + this.txtTenThanhPho.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) { // 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 = dgvTHANHPHO.CurrentCell.RowIndex; // MaKH hiện hành string strTHANHPHO = dgvTHANHPHO.Rows[r].Cells[0].Value.ToString(); // Câu lệnh SQL cmd.CommandText = System.String.Concat("Update ThanhPho Set TenThanhPho='" + this.txtTenThanhPho.Text.ToString() + "' Where ThanhPho='" + strTHANHPHO + "'"); // 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!"); } // Đóng kết nối conn.Close(); Câu 07: (Form5 – Menu Quản lý danh mục đơn \ Danh mục Khách Hàng) Lưu hành nội bộ Trang 96 * 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 Câu 08: (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 Câu 09: (Form7 – Menu Quản lý danh mục đơn \ Danh mục Sản Phẩm) * Yêu cầu: - Trên Form1: khi chọn menu “Quản lý danh mục đơn \ Danh mục Sản Phẩm” sẽ mở Form7. - Trên Form7: thiết kế như sau Lưu hành nội bộ Trang 97 Câu 10: (Form8 – Menu Quản lý danh mục đơn \ Danh mục Hóa Đơn) * Yêu cầu: - Trên Form1: khi chọn menu “Quản lý danh mục đơn \ Danh mục Hóa Đơn” sẽ mở Form8. - Trên Form8: thiết kế như sau Câu 11: (Form9 – Menu Quản lý danh mục đơn \ Danh mục Chi Tiết Hóa Đơn) * Yêu cầu: - Trên Form1: khi chọn menu “Quản lý danh mục đơn \ Danh mục Chi Tiết Hóa Đơn” sẽ mở Form9. Lưu hành nội bộ Trang 98 - Trên Form9: thiết kế như sau Câu 11: (Form10 – Menu Quản lý danh mục theo nhóm \ Khách hàng theo thành phố) * Yêu cầu: - Trên Form1: khi chọn menu “Quản lý danh mục theo nhóm \ Khách hàng theo Thành Phố” sẽ mở Form10. - Trên Form10: thiết kế như sau Câu 12: (Form11 – Menu Quản lý danh mục theo nhóm \ Hóa đơn theo Khách hàng) * Yêu cầu: Lưu hành nội bộ Trang 99 - Trên Form1: khi chọn menu “Quản lý danh mục theo nhóm \ Hóa đơn theo Khách hàng” sẽ mở Form11. - Trên Form11: thiết kế như sau Câu 13: (Form12 – Menu Quản lý danh mục theo nhóm \ Hóa đơn theo Sản phẩm) * Yêu cầu: - Trên Form1: khi chọn menu “Quản lý danh mục theo nhóm \ Hóa đơn theo Sản phẩm” sẽ mở Form12. - Trên Form12: thiết kế như sau à tự thực hiện Câu 14: (Form13 – Menu Quản lý danh mục theo nhóm \ Hóa đơn theo Nhân viên) * Yêu cầu: - Trên Form1: khi chọn menu “Quản lý danh mục theo nhóm \ Hóa đơn theo Nhân viên” sẽ mở Form13. - Trên Form13: thiết kế như sau à tự thực hiện Câu 15: (Form14 – Menu Quản lý danh mục theo nhóm \ Chi tiết hóa đơn theo Hóa đơn) * Yêu cầu: - Trên Form1: khi chọn menu “Quản lý danh mục theo nhóm \ Chi tiết hóa đơn theo Hóa đơn” sẽ mở Form14. - Trên Form14: thiết kế như sau à tự thực hiện Câu 16: (Form15 – Menu Quản lý danh mục theo nhóm \ Đa cấp) * Yêu cầu: - Trên Form1: bổ sung menu “Quản lý danh mục theo nhóm \ Quản lý Đa cấp”, và khi chọn sẽ mở Form15. - Trên Form15: thiết kế như sau Lưu hành nội bộ Trang 100 -- Hết --
File đính kèm:
- Giáo trình Lập trình C# 2008 cơ bản.pdf