Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed rutrum ex sed lacus suscipit, một gravida turpis efficitur
tiêu đề 2
Trong ullamcorper sem enim, at faucibus ante hendrerit vel. In ultrices commodo nibh, tristique imperdiet metus. Maecenas dictum enim ac dignissim scelerisque
Tạo cơ sở dữ liệu
Để tạo cơ sở dữ liệu trong MySQL, hãy sử dụng câu lệnh "CREATE DATABASE"
Thí dụ
Tạo cơ sở dữ liệu có tên "mydb"
var mysql = yêu cầu('mysql');
var con = mysql. createConnection({
máy chủ. "máy chủ cục bộ",
người dùng. "tên người dùng của bạn",
mật khẩu. "mật khẩu của bạn"
});
con. connect(function(err) {
if (err) throw err;
bảng điều khiển. log("Đã kết nối. ");
con. query("TẠO CƠ SỞ DỮ LIỆU mydb", function (err, result) {
if (err) throw err;
console. log("Cơ sở dữ liệu đã tạo");
});
});
Chạy ví dụ »Lưu mã ở trên vào tệp có tên "demo_create_db. js" và chạy tệp
Chạy "demo_create_db. js"
C. \Users\Tên của bạn>nút demo_create_db. js
Cái nào sẽ cho bạn kết quả này
Đã kết nối.
Đã tạo cơ sở dữ liệu
With the life of. Net và Visual Studio của Microsoft, việc xây dựng một chương trình quản lý với cơ sở dữ liệu đơn giản hơn rất nhiều. Bài này hướng dẫn bạn cách tạo ứng dụng quản lý bán hàng lưu niệm sử dụng ngôn ngữ lập trình C# và hệ thống quản trị cơ sở dữ liệu SQL Server. Tham khảo thêm khóa học đầy đủ thiết lập. NET and key to key with C# program
1. Request
Xây dựng chương trình quản lý cửa hàng Bán hàng lưu niệm sử dụng ngôn ngữ C# và hệ thống quản trị cơ sở dữ liệu SQL Server. Hệ thống có các chức năng cơ bản như quản lý mặt hàng, quản lý khách hàng, quản lý hóa đơn bán hàng. Cửa hàng có thể có một hoặc nhiều người bán, với mỗi hóa đơn bán hàng phải có thông tin của người bán cho khách hàng cụ thể
2. Thiết kế cơ sở dữ liệu
a) Tạo ứng dụng mới
– Tên dự án. QuânLyBảnHằng
b) Tạo cơ sở dữ liệu
– Trong cửa sổ Solution Explorer, nhấp chuột phải lên tên ứng dụng, chọn Thêm -> Mục mới… Chọn Dữ liệu -> Cơ sở dữ liệu dựa trên dịch vụ (hoặc Cơ sở dữ liệu SQL trong Visual Studio Net 2005)
– Đặt tên cơ sở dữ liệu. quanlybanhang. mdf
– Tạo các bảng. Trong cửa sổ Server Explorer, chọn cơ sở dữ liệu, nháy chuột phải lên Tables, chọn Add New Table…
Bảng tblChatLieu (chất liệu)
Table tblKhach (khách)
Bảng tblHang (hàng)
Bảng tblNhanVien (nhân viên)
Bảng tblHDBan (hoá đơn bán)
Bảng tblChiTietHDBan (chi tiết hóa đơn bán)
Quan hệ giữa các bảng (Relationship)
A number of note
– Để cho phép người dùng sửa đổi thông tin của các bảng, hãy thực hiện như sau
Vào Công cụ -> Tùy chọn, chọn Công cụ cơ sở dữ liệu -> Trình thiết kế bảng và cơ sở dữ liệu, bỏ dấu chọn ở mục Ngăn lưu các thay đổi yêu cầu tạo lại bảng
– Xoá link tới bản sao cơ sở dữ liệu. trong cửa sổ Solution Explorer, nhấp chuột phải lên tệp dữ liệu (Quanlybanhang. mdf), chọn Loại trừ khỏi dự án
– Thực hiện kết nối dữ liệu
Trong Server Explorer, nhấp chuột phải Data Connections, chọn Add Connection, chọn Microsoft SQL Server Database File, nhấn Continue. Trong hộp thoại Add Connection, nhấn Browse find file data (Quanlybanhang. mdf) (đã tìm thấy thư mục Dự án của bạn). Nhấn Test Connection, nếu thành công sẽ xuất hiện thông báo “Test connection Successful”
– Nên tạo thư mục chứa ảnh. nhấp chuột phải lên tên dự án QuanLyBanHang, chọn Thêm, chọn Thư mục mới, đặt tên thư mục là Hình ảnh. Máy phải lên thư mục Hình ảnh, chọn Thêm, chọn Mục hiện có và duyệt chọn các tệp ảnh, nhấn Thêm để thêm vào thư mục Hình ảnh
Xem hướng dẫn video
3. Design design
a) Hình thức chính
– Mẫu tên. frmMain
Các thành phần của menu
NameTextmnuFileTập tinmnuThoat ThoátmnuDanhMucDanh mụcmnuChatLieu Chất liệumnuNhanVien Nhân viênmnuKhachHang Khách hàngmnuHangHoa Hàng hoámnuHoaDonHoá đơnmnuHoaDonBan Hoá đơn bánmnuTimKiemTìm kiếmmnuFindHoaDon Hoá đơnmnuFindHang HàngmnuFindKhachHang Khách hàngmnuBaoCaoBáo cáomnuBCHangTon Hàng tồnmnuBCDoanhThu Doanh thumnuTroGiupTrợ giúpmnuHienTroGiup Trợ giúpmnuVaiNet Vài nétXem Video hướng dẫn
b) Mẫu Danh mục chất liệu
Tên biểu mẫu. frmDMChatLieu
Các thành phần trên biểu mẫu
Điều khiểnTênVăn bảnBoxtxtMaChatLieutxtMườiChatLieuButtonbtnThemAddbtnXoaXoábtnSuaSuabtnLưu LưubtnBoquaBỏ quabtnDongDangDataGridViewdgvChatLieuXem Video hướng dẫn
c) Mẫu Danh mục nhân viên
Tên biểu mẫu. frmDMNhanvien
Các thành phần trên biểu mẫu
Điều khiểnTênTextTextBoxtxtMaNhanVientxtTenNhanVientxtDiaChiButtonbtnThem, btnXoa, btnSua, btnLuu, btnBoQua, btnDongCheckBoxchkGioiTinhNamMaskedTextBoxmtbDienThoaiMask. Số Điện ThoạimskNgaySinhMask. Short DateDataGridViewdgvNhanVienXem Video hướng dẫn
d) Mẫu Danh Mục Khách Hàng
Tên biểu mẫu. frmDMKhachHang
Các thành phần trên biểu mẫu
Điều khiểnTênTextTextBoxtxtMaKhachtxtTenKhachtxtDiaChiButtonbtnThem, btnXoa, btnSua, btnLuu, btnBoQua, btnDongMaskedTextBoxmtbDienThoaiMask. Số điện thoạiDataGridViewdgvKhachHangXem Video hướng dẫn
e) Mẫu Danh mục hàng hoá
Tên biểu mẫu. frmDMhang
Các thành phần trên biểu mẫu
Điều khiểnTênTextBoxtxtMaHang, txtTenHang, txtSoLuong, txtDonGiaNhap, txtDonGiaBan, txtAnh, txtGhiChuComboBoxcboMaChatLieuPictureBoxpicAnh (thuộc tính SizeMode = Zoom)DataGridViewdgvHangOpenButtonbtnThem, btnXoa, btnSua, btnLuu, btnBoQua, btnTimDongKiem, btnnHien, btnHien, thiXem Video hướng dẫn
f) Mẫu hóa đơn bán hàng
Tên biểu mẫu. từ HoaDonBan
Các thành phần trên biểu mẫu
Điều khiểnNameTextLabellblBangChuBằng chữ. TextBoxtxtMaHDBan, txtNgayBan, txtTenNhanVien,txtTenKhach, txtDiaChi, txtDienThoai, txtTongTien, txtTenHang, txtDonGiaBan, txtSoLuong, txtGiamGia, txtThanhTien. ComboBoxcboMaNhanVien, cboMaKhach, cboMaHang, cboMaHDBan. DataGridViewdgvHDBanHangButtonbtnNgay, btnThem, btnLuu, btnXoa, btnInHoaDon, btnDong, btnTimKiemXem Video hướng dẫn
Tên biểu mẫu. từTimHDBan
Các thành phần trên biểu mẫu
Điều khiểnTênTextBoxtxtMaHDBan, txtThang, txtNam, txtMaNhanVien, txtMaKhach, txtTongTien. DataGridViewdgvTKHoaDonButtonbtnTimKiem, btnTimLai, btnDongXem Video hướng dẫn
Chú thích
– Tất cả các dạng (ngoại trừ frmMain), thuộc tính StartPostion = CenterParent, ShowInTaskbar = False
4. Xử lý sự kiện
4. 1. Lớp Chức năng
– Chứa các phương thức sử dụng chung
– Trong khung Solution Explorer, nháy phải lên tên dự án, chọn Thêm -> Thư mục mới, đặt tên thư mục là Lớp
– Máy phải có thư mục Class, nháy phải chọn Add -> Class, đặt tên Functions. cs
– Các hàm trong lớp
+ Khai báo bổ sung thư viện
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms; // Sử dụng đối tượng MessageBox
+ Viết 2 phương thức. Kết nối() và Ngắt kết nối()
namespace QuanLyBanHang.Class
{
class Functions
{
public static SqlConnection Con; //Khai báo đối tượng kết nối
public static void Connect()
{
Con = new SqlConnection(); //Khởi tạo đối tượng
Con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Quanlybanhang.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
Con.Open(); //Mở kết nối
//Kiểm tra kết nối
if (Con.State == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
else MessageBox.Show("Không thể kết nối với dữ liệu");
}
public static void Disconnect()
{
if (Con.State == ConnectionState.Open)
{
Con.Close(); //Đóng kết nối
Con.Dispose(); //Giải phóng tài nguyên
Con = null;
}
}
}
4. 2. Mẫu frmMain
a) Sự kiện frmMain_Load
private void frmMain_Load(object sender, EventArgs e)
{
Class.Functions.Connect(); //Mở kết nối
}
b) Sự kiện mnuThoat_Click
private void mnuThoat_Click(object sender, EventArgs e)
{
Class.Functions.Disconnect(); //Đóng kết nối
Application.Exit(); //Thoát
}
c) Show the other form
cú pháp
= new ();
. ShowDialog();
Hoặc .Show(); //Hiện thị dạng thông thường
+ Hiển thị form frmChatLieu
private void mnuChatLieu_Click(object sender, EventArgs e)
{
frmDMChatLieu frmChatLieu = new frmDMChatLieu(); //Khởi tạo đối tượng
frmChatLieu.ShowDialog(); //Hiển thị
}
a) Khai báo
– Khai báo
using System.Data.SqlClient; //Sử dụng thư viện để làm việc SQL server
using QuanLyBanHang.Class; //Sử dụng class Functions.cs
– Khai báo biến toàn cục
DataTable tblCL; //Chứa dữ liệu bảng Chất liệu
b) Sự kiện frmDMChatLieu_Load
private void frmDMChatLieu_Load(object sender, EventArgs e)
{
txtMaChatLieu.Enabled = false;
btnLuu.Enabled = false;
btnBoQua.Enabled = false;
LoadDataGridView(); //Hiển thị bảng tblChatLieu
}
Trong đó, phương thức LoadDataGridView có tác dụng lấy dữ liệu từ bảng tblChatLieu đổ vào DataGridView
c) Phương thức LoadDataGridView
________số 8Với GetDataToTable được viết trong lớp Hàm có tác dụng thực hiện câu lệnh SQL truy vấn dữ liệu từ đổ vào bảng đối tượng cơ sở dữ liệu
d) Phương thức GetDataToTable
Open window Layer Functions viết mã lệnh như sau
//Lấy dữ liệu vào bảng
public static DataTable GetDataToTable(string sql)
{
SqlDataAdapter dap = new SqlDataAdapter(); //Định nghĩa đối tượng thuộc lớp SqlDataAdapter
//Tạo đối tượng thuộc lớp SqlCommand
dap.SelectCommand = new SqlCommand();
dap.SelectCommand.Connection = Functions.Con; //Kết nối cơ sở dữ liệu
dap.SelectCommand.CommandText = sql; //Lệnh SQL
//Khai báo đối tượng table thuộc lớp DataTable
DataTable table = new DataTable();
dap.Fill(table);
return table;
}
Hoặc có thể rút gọn bằng cách gán tham số khi khai báo các đối tượng như sau
namespace QuanLyBanHang.Class
{
class Functions
{
public static SqlConnection Con; //Khai báo đối tượng kết nối
public static void Connect()
{
Con = new SqlConnection(); //Khởi tạo đối tượng
Con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Quanlybanhang.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
Con.Open(); //Mở kết nối
//Kiểm tra kết nối
if (Con.State == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
else MessageBox.Show("Không thể kết nối với dữ liệu");
}
public static void Disconnect()
{
if (Con.State == ConnectionState.Open)
{
Con.Close(); //Đóng kết nối
Con.Dispose(); //Giải phóng tài nguyên
Con = null;
}
}
}
0Xem Video hướng dẫn
e) Phương thức dgvChatLieu_Click
Phương thức này có tác dụng lấy nội dung dòng dữ liệu người dùng chọn trong lưới DataGridView và hiển thị lên các điều khiển trên Biểu mẫu
namespace QuanLyBanHang.Class
{
class Functions
{
public static SqlConnection Con; //Khai báo đối tượng kết nối
public static void Connect()
{
Con = new SqlConnection(); //Khởi tạo đối tượng
Con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Quanlybanhang.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
Con.Open(); //Mở kết nối
//Kiểm tra kết nối
if (Con.State == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
else MessageBox.Show("Không thể kết nối với dữ liệu");
}
public static void Disconnect()
{
if (Con.State == ConnectionState.Open)
{
Con.Close(); //Đóng kết nối
Con.Dispose(); //Giải phóng tài nguyên
Con = null;
}
}
}
1f) Phương thức btnThem_Click
namespace QuanLyBanHang.Class
{
class Functions
{
public static SqlConnection Con; //Khai báo đối tượng kết nối
public static void Connect()
{
Con = new SqlConnection(); //Khởi tạo đối tượng
Con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Quanlybanhang.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
Con.Open(); //Mở kết nối
//Kiểm tra kết nối
if (Con.State == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
else MessageBox.Show("Không thể kết nối với dữ liệu");
}
public static void Disconnect()
{
if (Con.State == ConnectionState.Open)
{
Con.Close(); //Đóng kết nối
Con.Dispose(); //Giải phóng tài nguyên
Con = null;
}
}
}
2With ResetValues is method of form frmDMChatLieu có tác dụng xóa hết dữ liệu trong các điều khiển trên Form
g) Phương thức ResetValues
namespace QuanLyBanHang.Class
{
class Functions
{
public static SqlConnection Con; //Khai báo đối tượng kết nối
public static void Connect()
{
Con = new SqlConnection(); //Khởi tạo đối tượng
Con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Quanlybanhang.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
Con.Open(); //Mở kết nối
//Kiểm tra kết nối
if (Con.State == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
else MessageBox.Show("Không thể kết nối với dữ liệu");
}
public static void Disconnect()
{
if (Con.State == ConnectionState.Open)
{
Con.Close(); //Đóng kết nối
Con.Dispose(); //Giải phóng tài nguyên
Con = null;
}
}
}
3h) Phương thức btnLuu_Click
Phương thức này có tác dụng kiểm tra thông tin người dùng nhập vào các điều khiển trên Biểu mẫu trong trường hợp mới hơn và lưu các thông tin đó vào cơ sở dữ liệu
namespace QuanLyBanHang.Class
{
class Functions
{
public static SqlConnection Con; //Khai báo đối tượng kết nối
public static void Connect()
{
Con = new SqlConnection(); //Khởi tạo đối tượng
Con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Quanlybanhang.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
Con.Open(); //Mở kết nối
//Kiểm tra kết nối
if (Con.State == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
else MessageBox.Show("Không thể kết nối với dữ liệu");
}
public static void Disconnect()
{
if (Con.State == ConnectionState.Open)
{
Con.Close(); //Đóng kết nối
Con.Dispose(); //Giải phóng tài nguyên
Con = null;
}
}
}
4With CheckKey và RunSQL là các phương thức được viết trong các Hàm lớp
CheckKey có tác dụng kiểm tra việc sao chép khóa, RunSQL có tác dụng thực thi các câu lệnh SQL
i) Hàm CheckKey
Open window Layer Functions viết mã lệnh
namespace QuanLyBanHang.Class
{
class Functions
{
public static SqlConnection Con; //Khai báo đối tượng kết nối
public static void Connect()
{
Con = new SqlConnection(); //Khởi tạo đối tượng
Con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Quanlybanhang.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
Con.Open(); //Mở kết nối
//Kiểm tra kết nối
if (Con.State == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
else MessageBox.Show("Không thể kết nối với dữ liệu");
}
public static void Disconnect()
{
if (Con.State == ConnectionState.Open)
{
Con.Close(); //Đóng kết nối
Con.Dispose(); //Giải phóng tài nguyên
Con = null;
}
}
}
5j) Phương thức RunSQL
Open window Layer Functions viết mã lệnh như sau
namespace QuanLyBanHang.Class
{
class Functions
{
public static SqlConnection Con; //Khai báo đối tượng kết nối
public static void Connect()
{
Con = new SqlConnection(); //Khởi tạo đối tượng
Con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Quanlybanhang.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
Con.Open(); //Mở kết nối
//Kiểm tra kết nối
if (Con.State == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
else MessageBox.Show("Không thể kết nối với dữ liệu");
}
public static void Disconnect()
{
if (Con.State == ConnectionState.Open)
{
Con.Close(); //Đóng kết nối
Con.Dispose(); //Giải phóng tài nguyên
Con = null;
}
}
}
6Chú thích. Đối tượng SqlCommand có hai phương thức để thực thi câu lệnh SQL, trong đó
- thực thi đọc. thực thi câu lệnh SQL có dữ liệu trả về, ví dụ SELECT
- Thực thiNonQuery. thực thi các câu lệnh SQL không yêu cầu trả về tệp dữ liệu, ví dụ. CHÈN, CẬP NHẬT, XÓA
k) Phương thức btnSua_Click
Khi người dùng nhấp chuột vào một dòng ghi bất kỳ trên lưới để hiển thị dữ liệu của bản ghi đó lên Biểu mẫu thì người dùng có thể chỉnh sửa các thông tin đó
Phương thức btnSua_Click có tác dụng lưu các thông tin người dùng đã sửa vào CSDL
namespace QuanLyBanHang.Class
{
class Functions
{
public static SqlConnection Con; //Khai báo đối tượng kết nối
public static void Connect()
{
Con = new SqlConnection(); //Khởi tạo đối tượng
Con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Quanlybanhang.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
Con.Open(); //Mở kết nối
//Kiểm tra kết nối
if (Con.State == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
else MessageBox.Show("Không thể kết nối với dữ liệu");
}
public static void Disconnect()
{
if (Con.State == ConnectionState.Open)
{
Con.Close(); //Đóng kết nối
Con.Dispose(); //Giải phóng tài nguyên
Con = null;
}
}
}
7l) Phương thức btnXoa_Click
namespace QuanLyBanHang.Class
{
class Functions
{
public static SqlConnection Con; //Khai báo đối tượng kết nối
public static void Connect()
{
Con = new SqlConnection(); //Khởi tạo đối tượng
Con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Quanlybanhang.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
Con.Open(); //Mở kết nối
//Kiểm tra kết nối
if (Con.State == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
else MessageBox.Show("Không thể kết nối với dữ liệu");
}
public static void Disconnect()
{
if (Con.State == ConnectionState.Open)
{
Con.Close(); //Đóng kết nối
Con.Dispose(); //Giải phóng tài nguyên
Con = null;
}
}
}
8m) Phương thức RunSQLDel
Phương thức RunSQLDel tương tự như RunSQL nhưng trong trường hợp xóa dữ liệu nếu dữ liệu đang được sử dụng bởi một đối tượng khác thì không được phép xóa
Open window Layer Functions viết mã lệnh như sau
namespace QuanLyBanHang.Class
{
class Functions
{
public static SqlConnection Con; //Khai báo đối tượng kết nối
public static void Connect()
{
Con = new SqlConnection(); //Khởi tạo đối tượng
Con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Quanlybanhang.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
Con.Open(); //Mở kết nối
//Kiểm tra kết nối
if (Con.State == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
else MessageBox.Show("Không thể kết nối với dữ liệu");
}
public static void Disconnect()
{
if (Con.State == ConnectionState.Open)
{
Con.Close(); //Đóng kết nối
Con.Dispose(); //Giải phóng tài nguyên
Con = null;
}
}
}
9n) Phương thức btnBoQua_Click
Phương thức này được gọi khi người dùng muốn hủy bỏ các chức năng Thêm mới hoặc Chỉnh sửa dữ liệu
private void frmMain_Load(object sender, EventArgs e)
{
Class.Functions.Connect(); //Mở kết nối
}
0o) Phương thức sử dụng phím Enter thay cho phím Tab
private void frmMain_Load(object sender, EventArgs e)
{
Class.Functions.Connect(); //Mở kết nối
}
1Thực hiện tương tự cho txtTenChatLieu_KeyUp
p) Phương thức btnDong_Click
private void frmMain_Load(object sender, EventArgs e)
{
Class.Functions.Connect(); //Mở kết nối
}
2Xem video hướng dẫn phần trên
a) Khai báo
– Thư viện
private void frmMain_Load(object sender, EventArgs e)
{
Class.Functions.Connect(); //Mở kết nối
}
3– Biến
private void frmMain_Load(object sender, EventArgs e)
{
Class.Functions.Connect(); //Mở kết nối
}
4b) Phương thức frmDMNhanvien_Load
private void frmMain_Load(object sender, EventArgs e)
{
Class.Functions.Connect(); //Mở kết nối
}
5c) Phương thức LoadDataGridView – Hiển thị dữ liệu lên lưới
private void frmMain_Load(object sender, EventArgs e)
{
Class.Functions.Connect(); //Mở kết nối
}
6d) Phương thức dgvNhanVien Click
private void frmMain_Load(object sender, EventArgs e)
{
Class.Functions.Connect(); //Mở kết nối
}
7e) Phương thức btnThem_Click
private void frmMain_Load(object sender, EventArgs e)
{
Class.Functions.Connect(); //Mở kết nối
}
8f) Phương thức ResetValues
private void frmMain_Load(object sender, EventArgs e)
{
Class.Functions.Connect(); //Mở kết nối
}
9g) Phương thức btnLuu_Click
private void mnuThoat_Click(object sender, EventArgs e)
{
Class.Functions.Disconnect(); //Đóng kết nối
Application.Exit(); //Thoát
}
0With IsDate và ConvertDateTime là các hàm được viết trong lớp Hàm
IsDate có tác dụng kiểm tra một biến có ở dạng tháng không, ConvertDateTime có tác dụng thay đổi chuỗi ngày do người dùng nhập có dạng dd/mm/yyyy thành chuỗi ngày có dạng mm/dd/yyyy để lưu vào cơ sở dữ liệu
h) Hàm IsDate
Soạn thảo trong các Hàm lớp
private void mnuThoat_Click(object sender, EventArgs e)
{
Class.Functions.Disconnect(); //Đóng kết nối
Application.Exit(); //Thoát
}
1i) Hàm ConvertDateTime
Soạn thảo hàm trong lớp Functions
private void mnuThoat_Click(object sender, EventArgs e)
{
Class.Functions.Disconnect(); //Đóng kết nối
Application.Exit(); //Thoát
}
2j) Phương thức btnSua_Click
private void mnuThoat_Click(object sender, EventArgs e)
{
Class.Functions.Disconnect(); //Đóng kết nối
Application.Exit(); //Thoát
}
3k) Phương thức btnXoa_Click
private void mnuThoat_Click(object sender, EventArgs e)
{
Class.Functions.Disconnect(); //Đóng kết nối
Application.Exit(); //Thoát
}
4l) Phương thức btnBoQua_Click
private void mnuThoat_Click(object sender, EventArgs e)
{
Class.Functions.Disconnect(); //Đóng kết nối
Application.Exit(); //Thoát
}
5m) Phương thức sử dụng phím Enter thay cho phím Tab
private void mnuThoat_Click(object sender, EventArgs e)
{
Class.Functions.Disconnect(); //Đóng kết nối
Application.Exit(); //Thoát
}
6Thực hiện tương tự cho txtTenNhanVien. KeyUp, txtDiaChi. KeyUp, mtbDienThoại. KeyUp, mskNgaySinh. chìa khóa
n) Phương thức btnDong_Click
private void mnuThoat_Click(object sender, EventArgs e)
{
Class.Functions.Disconnect(); //Đóng kết nối
Application.Exit(); //Thoát
}
7Xem video hướng dẫn chi tiết
a) Khai báo
– Thư viện
private void mnuThoat_Click(object sender, EventArgs e)
{
Class.Functions.Disconnect(); //Đóng kết nối
Application.Exit(); //Thoát
}
8– Biến
private void mnuThoat_Click(object sender, EventArgs e)
{
Class.Functions.Disconnect(); //Đóng kết nối
Application.Exit(); //Thoát
}
9b) Phương thức frmDMKhachHang_Load
private void mnuChatLieu_Click(object sender, EventArgs e)
{
frmDMChatLieu frmChatLieu = new frmDMChatLieu(); //Khởi tạo đối tượng
frmChatLieu.ShowDialog(); //Hiển thị
}
0c) Phương thức LoadDataGridView
private void mnuChatLieu_Click(object sender, EventArgs e)
{
frmDMChatLieu frmChatLieu = new frmDMChatLieu(); //Khởi tạo đối tượng
frmChatLieu.ShowDialog(); //Hiển thị
}
1d) Phương thức dgvKhachHang_Click
private void mnuChatLieu_Click(object sender, EventArgs e)
{
frmDMChatLieu frmChatLieu = new frmDMChatLieu(); //Khởi tạo đối tượng
frmChatLieu.ShowDialog(); //Hiển thị
}
2e) Phương thức btnThem_Click
private void mnuChatLieu_Click(object sender, EventArgs e)
{
frmDMChatLieu frmChatLieu = new frmDMChatLieu(); //Khởi tạo đối tượng
frmChatLieu.ShowDialog(); //Hiển thị
}
3f) Phương thức ResetValues
private void mnuChatLieu_Click(object sender, EventArgs e)
{
frmDMChatLieu frmChatLieu = new frmDMChatLieu(); //Khởi tạo đối tượng
frmChatLieu.ShowDialog(); //Hiển thị
}
4g) Phương thức btnLuu_Click
private void mnuChatLieu_Click(object sender, EventArgs e)
{
frmDMChatLieu frmChatLieu = new frmDMChatLieu(); //Khởi tạo đối tượng
frmChatLieu.ShowDialog(); //Hiển thị
}
5h) Phương thức btnSua_Click
private void mnuChatLieu_Click(object sender, EventArgs e)
{
frmDMChatLieu frmChatLieu = new frmDMChatLieu(); //Khởi tạo đối tượng
frmChatLieu.ShowDialog(); //Hiển thị
}
6i) Phương thức btnXoa_Click
private void mnuChatLieu_Click(object sender, EventArgs e)
{
frmDMChatLieu frmChatLieu = new frmDMChatLieu(); //Khởi tạo đối tượng
frmChatLieu.ShowDialog(); //Hiển thị
}
7j) Phương thức btnBoQua_Click
private void mnuChatLieu_Click(object sender, EventArgs e)
{
frmDMChatLieu frmChatLieu = new frmDMChatLieu(); //Khởi tạo đối tượng
frmChatLieu.ShowDialog(); //Hiển thị
}
8k) Phương thức sử dụng phím Enter thay cho phím Tab
private void mnuChatLieu_Click(object sender, EventArgs e)
{
frmDMChatLieu frmChatLieu = new frmDMChatLieu(); //Khởi tạo đối tượng
frmChatLieu.ShowDialog(); //Hiển thị
}
9l) Phương thức btnDong_Click
using System.Data.SqlClient; //Sử dụng thư viện để làm việc SQL server
using QuanLyBanHang.Class; //Sử dụng class Functions.cs
0Xem video hướng dẫn Quản Lý Khách Hàng
a) Khai báo
– Thư viện
private void mnuThoat_Click(object sender, EventArgs e)
{
Class.Functions.Disconnect(); //Đóng kết nối
Application.Exit(); //Thoát
}
8– Biến
using System.Data.SqlClient; //Sử dụng thư viện để làm việc SQL server
using QuanLyBanHang.Class; //Sử dụng class Functions.cs
2b) Phương thức frmDMhang_Load
using System.Data.SqlClient; //Sử dụng thư viện để làm việc SQL server
using QuanLyBanHang.Class; //Sử dụng class Functions.cs
3Với FillCombo là một phương thức được viết trong Class Functions, có tác dụng lấy dữ liệu từ một câu lệnh SQL được đổ vào một ComboBox
c) Phương thức FillCombo
Soạn thảo trong Class Functions
using System.Data.SqlClient; //Sử dụng thư viện để làm việc SQL server
using QuanLyBanHang.Class; //Sử dụng class Functions.cs
4d) Phương thức ResetValues
using System.Data.SqlClient; //Sử dụng thư viện để làm việc SQL server
using QuanLyBanHang.Class; //Sử dụng class Functions.cs
5e) Phương thức LoadDataGridView
using System.Data.SqlClient; //Sử dụng thư viện để làm việc SQL server
using QuanLyBanHang.Class; //Sử dụng class Functions.cs
6f) Phương thức dgvHang_Click
using System.Data.SqlClient; //Sử dụng thư viện để làm việc SQL server
using QuanLyBanHang.Class; //Sử dụng class Functions.cs
7With GetFieldValues là một hàm được viết trong Class Functions, có tác dụng lấy dữ liệu từ một câu lệnh SQL.
g) Hàm GetFieldValues
Soạn thảo trong Hàm lớp
using System.Data.SqlClient; //Sử dụng thư viện để làm việc SQL server
using QuanLyBanHang.Class; //Sử dụng class Functions.cs
8h) Phương thức btnThem_Click
using System.Data.SqlClient; //Sử dụng thư viện để làm việc SQL server
using QuanLyBanHang.Class; //Sử dụng class Functions.cs
9i) Phương thức btnLuu_Click
DataTable tblCL; //Chứa dữ liệu bảng Chất liệu
0j) Phương thức btnSua_Click
DataTable tblCL; //Chứa dữ liệu bảng Chất liệu
1k) Phương thức btnXoa_Click
DataTable tblCL; //Chứa dữ liệu bảng Chất liệu
2l) Phương thức btnBoQua_Click
DataTable tblCL; //Chứa dữ liệu bảng Chất liệu
3m) Phương thức btnOpen_Click
DataTable tblCL; //Chứa dữ liệu bảng Chất liệu
4n) Phương thức btnTimKiem_Click
Phương thức tìm kiếm cho phép tìm kiếm các bản ghi đáp ứng một số điều kiện nào đó và hiển thị kết quả tìm kiếm được đưa vào lưới DataGridView
DataTable tblCL; //Chứa dữ liệu bảng Chất liệu
5o) Phương thức btnHienThi_Click
DataTable tblCL; //Chứa dữ liệu bảng Chất liệu
6p) Phương thức btnDong_Click
DataTable tblCL; //Chứa dữ liệu bảng Chất liệu
7Xem Video hướng dẫn Quản lý Hàng Hóa
a) Khai báo
Chọn menu Project/Add Reference, chọn thẻ COM box thoại Add Reference, chọn Microsoft Excel 14. 0 Thư viện đối tượng, nhấn OK
– Thư viện
DataTable tblCL; //Chứa dữ liệu bảng Chất liệu
8– Biến
DataTable tblCL; //Chứa dữ liệu bảng Chất liệu
9b) Phương thức frmHoaDonBan_Load
private void frmDMChatLieu_Load(object sender, EventArgs e)
{
txtMaChatLieu.Enabled = false;
btnLuu.Enabled = false;
btnBoQua.Enabled = false;
LoadDataGridView(); //Hiển thị bảng tblChatLieu
}
0c) Phương thức LoadDataGridView
private void frmDMChatLieu_Load(object sender, EventArgs e)
{
txtMaChatLieu.Enabled = false;
btnLuu.Enabled = false;
btnBoQua.Enabled = false;
LoadDataGridView(); //Hiển thị bảng tblChatLieu
}
1d) Phương thức LoadInfoHoaDon()
private void frmDMChatLieu_Load(object sender, EventArgs e)
{
txtMaChatLieu.Enabled = false;
btnLuu.Enabled = false;
btnBoQua.Enabled = false;
LoadDataGridView(); //Hiển thị bảng tblChatLieu
}
2e) Phương thức btnThem_Click
private void frmDMChatLieu_Load(object sender, EventArgs e)
{
txtMaChatLieu.Enabled = false;
btnLuu.Enabled = false;
btnBoQua.Enabled = false;
LoadDataGridView(); //Hiển thị bảng tblChatLieu
}
3With CreateKey là một hàm được viết trong Class Functions, có tác dụng sinh khóa tự động cho Mã hóa đơn bán
f) Hàm CreateKey
Soạn thảo trong Class Functions
private void frmDMChatLieu_Load(object sender, EventArgs e)
{
txtMaChatLieu.Enabled = false;
btnLuu.Enabled = false;
btnBoQua.Enabled = false;
LoadDataGridView(); //Hiển thị bảng tblChatLieu
}
4Với ConvertTimeTo24 là một hàm toàn cục được viết trong Class Functions, có tác dụng chuyển đổi giờ từ định dạng PM sang định dạng 24h
g) Hàm ConvertTimeTo24
Soạn thảo trong Class Functions
private void frmDMChatLieu_Load(object sender, EventArgs e)
{
txtMaChatLieu.Enabled = false;
btnLuu.Enabled = false;
btnBoQua.Enabled = false;
LoadDataGridView(); //Hiển thị bảng tblChatLieu
}
5h) Phương thức ResetValues
private void frmDMChatLieu_Load(object sender, EventArgs e)
{
txtMaChatLieu.Enabled = false;
btnLuu.Enabled = false;
btnBoQua.Enabled = false;
LoadDataGridView(); //Hiển thị bảng tblChatLieu
}
6i) Phương thức btnLuu_Click
private void frmDMChatLieu_Load(object sender, EventArgs e)
{
txtMaChatLieu.Enabled = false;
btnLuu.Enabled = false;
btnBoQua.Enabled = false;
LoadDataGridView(); //Hiển thị bảng tblChatLieu
}
7With ChuyenSoSangChu là một hàm toàn cục được viết trong Class Functions, có tác dụng đọc từ dạng số sang dạng chữ
j) Hàm ChuyểnSangChu
Soạn thảo trong Class Functions
private void frmDMChatLieu_Load(object sender, EventArgs e)
{
txtMaChatLieu.Enabled = false;
btnLuu.Enabled = false;
btnBoQua.Enabled = false;
LoadDataGridView(); //Hiển thị bảng tblChatLieu
}
8k) Phương thức ResetValuesHang
private void frmDMChatLieu_Load(object sender, EventArgs e)
{
txtMaChatLieu.Enabled = false;
btnLuu.Enabled = false;
btnBoQua.Enabled = false;
LoadDataGridView(); //Hiển thị bảng tblChatLieu
}
9l) Phương thức dgvHDBanHang_DoubleClick
Phương thức này cho phép người dùng nhấp đúp chuột vào một mặt hàng trong lưới để xóa
private void LoadDataGridView()
{
string sql;
sql = "SELECT MaChatLieu, TenChatLieu FROM tblChatLieu";
tblCL = Class.Functions.GetDataToTable(sql); //Đọc dữ liệu từ bảng
dgvChatLieu.DataSource = tblCL; //Nguồn dữ liệu
dgvChatLieu.Columns[0].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[1].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[0].Width = 100;
dgvChatLieu.Columns[1].Width = 300;
dgvChatLieu.AllowUserToAddRows = false; //Không cho người dùng thêm dữ liệu trực tiếp
dgvChatLieu.EditMode = DataGridViewEditMode.EditProgrammatically; //Không cho sửa dữ liệu trực tiếp
}
0m) Phương thức btnXoa_Click
Phương thức này cho phép xóa toàn bộ thông tin của một đơn hóa
private void LoadDataGridView()
{
string sql;
sql = "SELECT MaChatLieu, TenChatLieu FROM tblChatLieu";
tblCL = Class.Functions.GetDataToTable(sql); //Đọc dữ liệu từ bảng
dgvChatLieu.DataSource = tblCL; //Nguồn dữ liệu
dgvChatLieu.Columns[0].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[1].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[0].Width = 100;
dgvChatLieu.Columns[1].Width = 300;
dgvChatLieu.AllowUserToAddRows = false; //Không cho người dùng thêm dữ liệu trực tiếp
dgvChatLieu.EditMode = DataGridViewEditMode.EditProgrammatically; //Không cho sửa dữ liệu trực tiếp
}
1n) Phương thức cboMaNhanVien_TextChanged
private void LoadDataGridView()
{
string sql;
sql = "SELECT MaChatLieu, TenChatLieu FROM tblChatLieu";
tblCL = Class.Functions.GetDataToTable(sql); //Đọc dữ liệu từ bảng
dgvChatLieu.DataSource = tblCL; //Nguồn dữ liệu
dgvChatLieu.Columns[0].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[1].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[0].Width = 100;
dgvChatLieu.Columns[1].Width = 300;
dgvChatLieu.AllowUserToAddRows = false; //Không cho người dùng thêm dữ liệu trực tiếp
dgvChatLieu.EditMode = DataGridViewEditMode.EditProgrammatically; //Không cho sửa dữ liệu trực tiếp
}
2o) Phương thức cboMaKhach_TextChanged
private void LoadDataGridView()
{
string sql;
sql = "SELECT MaChatLieu, TenChatLieu FROM tblChatLieu";
tblCL = Class.Functions.GetDataToTable(sql); //Đọc dữ liệu từ bảng
dgvChatLieu.DataSource = tblCL; //Nguồn dữ liệu
dgvChatLieu.Columns[0].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[1].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[0].Width = 100;
dgvChatLieu.Columns[1].Width = 300;
dgvChatLieu.AllowUserToAddRows = false; //Không cho người dùng thêm dữ liệu trực tiếp
dgvChatLieu.EditMode = DataGridViewEditMode.EditProgrammatically; //Không cho sửa dữ liệu trực tiếp
}
3p) Phương thức cboMaHang_TextChanged
private void LoadDataGridView()
{
string sql;
sql = "SELECT MaChatLieu, TenChatLieu FROM tblChatLieu";
tblCL = Class.Functions.GetDataToTable(sql); //Đọc dữ liệu từ bảng
dgvChatLieu.DataSource = tblCL; //Nguồn dữ liệu
dgvChatLieu.Columns[0].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[1].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[0].Width = 100;
dgvChatLieu.Columns[1].Width = 300;
dgvChatLieu.AllowUserToAddRows = false; //Không cho người dùng thêm dữ liệu trực tiếp
dgvChatLieu.EditMode = DataGridViewEditMode.EditProgrammatically; //Không cho sửa dữ liệu trực tiếp
}
4q) Phương thức txtSoLuong Văn bản Thay đổi
private void LoadDataGridView()
{
string sql;
sql = "SELECT MaChatLieu, TenChatLieu FROM tblChatLieu";
tblCL = Class.Functions.GetDataToTable(sql); //Đọc dữ liệu từ bảng
dgvChatLieu.DataSource = tblCL; //Nguồn dữ liệu
dgvChatLieu.Columns[0].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[1].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[0].Width = 100;
dgvChatLieu.Columns[1].Width = 300;
dgvChatLieu.AllowUserToAddRows = false; //Không cho người dùng thêm dữ liệu trực tiếp
dgvChatLieu.EditMode = DataGridViewEditMode.EditProgrammatically; //Không cho sửa dữ liệu trực tiếp
}
5r) Phương thức txtGiamGia_TextChanged
private void LoadDataGridView()
{
string sql;
sql = "SELECT MaChatLieu, TenChatLieu FROM tblChatLieu";
tblCL = Class.Functions.GetDataToTable(sql); //Đọc dữ liệu từ bảng
dgvChatLieu.DataSource = tblCL; //Nguồn dữ liệu
dgvChatLieu.Columns[0].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[1].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[0].Width = 100;
dgvChatLieu.Columns[1].Width = 300;
dgvChatLieu.AllowUserToAddRows = false; //Không cho người dùng thêm dữ liệu trực tiếp
dgvChatLieu.EditMode = DataGridViewEditMode.EditProgrammatically; //Không cho sửa dữ liệu trực tiếp
}
6s) Phương thức btnInHoaDon_Click
private void LoadDataGridView()
{
string sql;
sql = "SELECT MaChatLieu, TenChatLieu FROM tblChatLieu";
tblCL = Class.Functions.GetDataToTable(sql); //Đọc dữ liệu từ bảng
dgvChatLieu.DataSource = tblCL; //Nguồn dữ liệu
dgvChatLieu.Columns[0].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[1].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[0].Width = 100;
dgvChatLieu.Columns[1].Width = 300;
dgvChatLieu.AllowUserToAddRows = false; //Không cho người dùng thêm dữ liệu trực tiếp
dgvChatLieu.EditMode = DataGridViewEditMode.EditProgrammatically; //Không cho sửa dữ liệu trực tiếp
}
7Kết quả ta có tệp Excel as after.
t) Phương thức btnTimKiem_Click
private void LoadDataGridView()
{
string sql;
sql = "SELECT MaChatLieu, TenChatLieu FROM tblChatLieu";
tblCL = Class.Functions.GetDataToTable(sql); //Đọc dữ liệu từ bảng
dgvChatLieu.DataSource = tblCL; //Nguồn dữ liệu
dgvChatLieu.Columns[0].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[1].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[0].Width = 100;
dgvChatLieu.Columns[1].Width = 300;
dgvChatLieu.AllowUserToAddRows = false; //Không cho người dùng thêm dữ liệu trực tiếp
dgvChatLieu.EditMode = DataGridViewEditMode.EditProgrammatically; //Không cho sửa dữ liệu trực tiếp
}
8u) Phương thức txtSoLuong KeyPress
private void LoadDataGridView()
{
string sql;
sql = "SELECT MaChatLieu, TenChatLieu FROM tblChatLieu";
tblCL = Class.Functions.GetDataToTable(sql); //Đọc dữ liệu từ bảng
dgvChatLieu.DataSource = tblCL; //Nguồn dữ liệu
dgvChatLieu.Columns[0].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[1].HeaderText = "Mã chất liệu";
dgvChatLieu.Columns[0].Width = 100;
dgvChatLieu.Columns[1].Width = 300;
dgvChatLieu.AllowUserToAddRows = false; //Không cho người dùng thêm dữ liệu trực tiếp
dgvChatLieu.EditMode = DataGridViewEditMode.EditProgrammatically; //Không cho sửa dữ liệu trực tiếp
}
9Thực hiện tương tự cho txtGiamGia_KeyPress
v) Phương thức cboMaHDBan_DropDown
Phương thức này cập nhật lại danh sách các mã hóa đơn bán và lưu vào cboMaHDBan mỗi khi người dùng nhấp chuột vào nút xổ của cbo
//Lấy dữ liệu vào bảng
public static DataTable GetDataToTable(string sql)
{
SqlDataAdapter dap = new SqlDataAdapter(); //Định nghĩa đối tượng thuộc lớp SqlDataAdapter
//Tạo đối tượng thuộc lớp SqlCommand
dap.SelectCommand = new SqlCommand();
dap.SelectCommand.Connection = Functions.Con; //Kết nối cơ sở dữ liệu
dap.SelectCommand.CommandText = sql; //Lệnh SQL
//Khai báo đối tượng table thuộc lớp DataTable
DataTable table = new DataTable();
dap.Fill(table);
return table;
}
0w) Phương thức frmHoadonBan_FormClosing
//Lấy dữ liệu vào bảng
public static DataTable GetDataToTable(string sql)
{
SqlDataAdapter dap = new SqlDataAdapter(); //Định nghĩa đối tượng thuộc lớp SqlDataAdapter
//Tạo đối tượng thuộc lớp SqlCommand
dap.SelectCommand = new SqlCommand();
dap.SelectCommand.Connection = Functions.Con; //Kết nối cơ sở dữ liệu
dap.SelectCommand.CommandText = sql; //Lệnh SQL
//Khai báo đối tượng table thuộc lớp DataTable
DataTable table = new DataTable();
dap.Fill(table);
return table;
}
1x) Phương thức btnDong_Click
DataTable tblCL; //Chứa dữ liệu bảng Chất liệu
7Xem Video hướng dẫn Quản lý Hóa Đơn
a) Khai báo
– Thư viện
//Lấy dữ liệu vào bảng
public static DataTable GetDataToTable(string sql)
{
SqlDataAdapter dap = new SqlDataAdapter(); //Định nghĩa đối tượng thuộc lớp SqlDataAdapter
//Tạo đối tượng thuộc lớp SqlCommand
dap.SelectCommand = new SqlCommand();
dap.SelectCommand.Connection = Functions.Con; //Kết nối cơ sở dữ liệu
dap.SelectCommand.CommandText = sql; //Lệnh SQL
//Khai báo đối tượng table thuộc lớp DataTable
DataTable table = new DataTable();
dap.Fill(table);
return table;
}
3– Biến
//Lấy dữ liệu vào bảng
public static DataTable GetDataToTable(string sql)
{
SqlDataAdapter dap = new SqlDataAdapter(); //Định nghĩa đối tượng thuộc lớp SqlDataAdapter
//Tạo đối tượng thuộc lớp SqlCommand
dap.SelectCommand = new SqlCommand();
dap.SelectCommand.Connection = Functions.Con; //Kết nối cơ sở dữ liệu
dap.SelectCommand.CommandText = sql; //Lệnh SQL
//Khai báo đối tượng table thuộc lớp DataTable
DataTable table = new DataTable();
dap.Fill(table);
return table;
}
4b) Phương thức frmTimHDBan_Load
//Lấy dữ liệu vào bảng
public static DataTable GetDataToTable(string sql)
{
SqlDataAdapter dap = new SqlDataAdapter(); //Định nghĩa đối tượng thuộc lớp SqlDataAdapter
//Tạo đối tượng thuộc lớp SqlCommand
dap.SelectCommand = new SqlCommand();
dap.SelectCommand.Connection = Functions.Con; //Kết nối cơ sở dữ liệu
dap.SelectCommand.CommandText = sql; //Lệnh SQL
//Khai báo đối tượng table thuộc lớp DataTable
DataTable table = new DataTable();
dap.Fill(table);
return table;
}
5c) Phương thức ResetValues
//Lấy dữ liệu vào bảng
public static DataTable GetDataToTable(string sql)
{
SqlDataAdapter dap = new SqlDataAdapter(); //Định nghĩa đối tượng thuộc lớp SqlDataAdapter
//Tạo đối tượng thuộc lớp SqlCommand
dap.SelectCommand = new SqlCommand();
dap.SelectCommand.Connection = Functions.Con; //Kết nối cơ sở dữ liệu
dap.SelectCommand.CommandText = sql; //Lệnh SQL
//Khai báo đối tượng table thuộc lớp DataTable
DataTable table = new DataTable();
dap.Fill(table);
return table;
}
6d) Phương thức btnTimKiem_Click
//Lấy dữ liệu vào bảng
public static DataTable GetDataToTable(string sql)
{
SqlDataAdapter dap = new SqlDataAdapter(); //Định nghĩa đối tượng thuộc lớp SqlDataAdapter
//Tạo đối tượng thuộc lớp SqlCommand
dap.SelectCommand = new SqlCommand();
dap.SelectCommand.Connection = Functions.Con; //Kết nối cơ sở dữ liệu
dap.SelectCommand.CommandText = sql; //Lệnh SQL
//Khai báo đối tượng table thuộc lớp DataTable
DataTable table = new DataTable();
dap.Fill(table);
return table;
}
7e) Phương thức LoadDataGridView
//Lấy dữ liệu vào bảng
public static DataTable GetDataToTable(string sql)
{
SqlDataAdapter dap = new SqlDataAdapter(); //Định nghĩa đối tượng thuộc lớp SqlDataAdapter
//Tạo đối tượng thuộc lớp SqlCommand
dap.SelectCommand = new SqlCommand();
dap.SelectCommand.Connection = Functions.Con; //Kết nối cơ sở dữ liệu
dap.SelectCommand.CommandText = sql; //Lệnh SQL
//Khai báo đối tượng table thuộc lớp DataTable
DataTable table = new DataTable();
dap.Fill(table);
return table;
}
8f) Phương thức btnTimLai_Click
//Lấy dữ liệu vào bảng
public static DataTable GetDataToTable(string sql)
{
SqlDataAdapter dap = new SqlDataAdapter(); //Định nghĩa đối tượng thuộc lớp SqlDataAdapter
//Tạo đối tượng thuộc lớp SqlCommand
dap.SelectCommand = new SqlCommand();
dap.SelectCommand.Connection = Functions.Con; //Kết nối cơ sở dữ liệu
dap.SelectCommand.CommandText = sql; //Lệnh SQL
//Khai báo đối tượng table thuộc lớp DataTable
DataTable table = new DataTable();
dap.Fill(table);
return table;
}
9g) Phương thức txtTongTien_KeyPress
namespace QuanLyBanHang.Class
{
class Functions
{
public static SqlConnection Con; //Khai báo đối tượng kết nối
public static void Connect()
{
Con = new SqlConnection(); //Khởi tạo đối tượng
Con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Quanlybanhang.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
Con.Open(); //Mở kết nối
//Kiểm tra kết nối
if (Con.State == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
else MessageBox.Show("Không thể kết nối với dữ liệu");
}
public static void Disconnect()
{
if (Con.State == ConnectionState.Open)
{
Con.Close(); //Đóng kết nối
Con.Dispose(); //Giải phóng tài nguyên
Con = null;
}
}
}
00h) Phương thức dgvTKHoaDon_DoubleClick
Phương thức này cho phép người dùng nhấp đúp chuột chọn một hóa đơn trên lưới, rồi gọi và hiển thị thông tin của hóa đơn đó lên biểu mẫu frmHoadonBan
Chú thích. Thay đổi phạm vi truy cập của điều khiển txtMaHDBan thành Công khai trong biểu mẫu frmHoadonBan (trong tệp frmHoadonBan. Nhà thiết kế. cs)