thông tinMagic Home Câu lệnh cho nút Sign Up privatevoid btnsignup_Clickobject sender, EventArgs e "@Numberphone", "@Email", "@Repassword" }; txtemail.Text, txtrepass.Text }; KetNoi.m
Giới Thiệu
Hiện nay, sự phát triển nhanh chóng của xã hội và công nghệ thông tin trên toàn cầu đang tạo ra nhu cầu ngày càng cao về việc ứng dụng công nghệ vào công việc, học tập và đời sống Công nghệ thông tin không chỉ phát triển mạnh mẽ mà còn mang đến sự đa dạng trong các ứng dụng phục vụ cuộc sống con người.
Nhu cầu quản lý bán hàng ngày càng tăng cao, với sự xuất hiện của nhiều công nghệ mới và phần mềm hiện đại, giúp người dùng quản lý thông tin nhân viên, khách hàng và sản phẩm một cách hiệu quả Để đáp ứng nhu cầu này, cần có một hệ thống quản lý bán hàng tối ưu, cho phép người dùng dễ dàng lưu trữ, cập nhật và kiểm soát thông tin một cách đầy đủ và chính xác.
Một số chức năng quản lý của đề tài :
- Quản lý hóa đơn Ứng dụng được phát triển trong môi trường phần mềm sau :
Môi trường phát triển : Visual Studio.NET
Giao diện người dùng : Windows Forms App(.NET Framework)
Truy cập dữ liệu : ADO.NET
Cơ sở dữ liêu : SQL Server
Thiết kế và Chương trình
Cơ sở dữ liệu
Tên thuộc tính Kiểu Ràng buộc Mô tả
Numberphone int Null Số Điện Thoại
) Null Nhập lại mật khẩu b Bảng nhanvien
Tên thuộc tính Kiểu Ràng buộc Mô tả
MaNV nvarchar(50) Primary Key Mã Nhân Viên
TenNV nvarchar(50) Null Tên Nhân Viên
GTinh bit Null Giới Tính
NSinh datetimeb Null Ngày Sinh
DChi nvarchar(50) Null Địa Chỉ
SDT nvarchar(50) Null Số Điện Thoại
Picture nvarchar(50) Null Ảnh c Bảng khachhang
Tên thuộc tính Kiểu Ràng buộc Mô tả
MaKH nvarchar(50) Primary Key Mã Khách Hàng
TenKH nvarchar(50) Null Tên Khách Hàng
GTinh bit Null Giới Tính
Dchi nvarchar(50) Null Địa Chỉ
SDT int Null Số Điện Thoại d Bảng sanpham
Tên thuộc tính Kiểu Ràng buộc Mô tả
MaAlbum nvarchar(50) Primary Key Mã Album
TenAlbum nvarchar(50) Null Tên Album
MaVer nchar(10) Primary Key Mã Ver
SLuong int Null Số Lượng
GiaVao int Null Giá Nhập Hàng
GiaRa int Null Giá Bán Hàng
Picture nvarchar(50) Null Hình ảnh album e Bảng hoadon
Tên thuộc tính Kiểu Ràng buộc Mô tả
MaHD nvarchar(50) Primary Key Mã Hóa Đơn
TenHD nvarchar(50) Null Tên Hóa Đơn
MaNV nvarchar(50) Primary Key Mã Nhân Viên
TenNV nvarchar(50) Null Tên Nhân Viên
MaKH nvarchar(50) Primary Key Mã Khách
TenKH nvarchar(50) Null Tên Khách Hàng
MaAlbum nvarchar(50) Primary Key Mã Album
TenAlbum nvarchar(50) Null Tên Album
MaVer nchar(10) Primary Key Mã Ver
SLuong int Null Số Lượng
ThanhTien int Null Thành Tiền
NgayDatHang datetime Null Ngày Đặt Hàng
NgayNhanHang datetime Null Ngày Nhận
DiaChiNhan nvarchar(50) Null Địa Chỉ Nhận
GhiChu nvarchar(50) Null Ghi Chú f Bảng LoaiVer
Tên thuộc tính Kiểu Ràng buộc Mô tả
MaVer nchar(10) Primary Key Mã Ver
TenVer nchar(10) Null Tên Ver
Thiết kế giao diện
a Giao diện đầu của Magic Shop
Các thành phần trong màn hình
Sign In Button Mở màn hình đăng nhập
Sign Up Button Mở màn hình đăng ký
Câu lệnh cho nút mở Sign In private void btndangnhap_Click(object sender, EventArgs e)
Form1 f1 = new Form1(); this.Hide(); f1.ShowDialog();
Câu lệnh cho nút mở Sign Up private void btndangky_Click(object sender, EventArgs e)
Form2 f2 = new Form2(); this.Hide(); f2.ShowDialog();
Các thành phần trong màn hình
Trong giao diện đăng nhập, người dùng sẽ nhập tên đăng nhập vào ô txtuser và mật khẩu vào ô txtpass Để bảo mật, có thể sử dụng chkShow để hiển thị mật khẩu Cuối cùng, nhấn nút btnblog để thực hiện đăng nhập khi đã điền đầy đủ thông tin.
9 btnexit Button Thoát khỏi màn hình đăng nhập lbregister LinkLabel Link mở màn hình đăng ký
Câu lệnh hiển thị mật khẩu private void chkShow_CheckedChanged(object sender, EventArgs e)
Câu lệnh kiểm tra đăng nhập ở KetNoi.cs public static bool dangNhap(string user, string pw)
SqlDataReader reader = null; bool OK = false; string sql = "select * from admin";
SqlCommand cmd = new SqlCommand(sql, conn); reader = cmd.ExecuteReader(); while (reader.Read())
{ if ((user.Trim() == reader["Username"].
ToString().Trim()) && pw.Trim() = reader["Password"].ToString().Trim())
Câu lệnh cho nút Sign In private void btblog_Click(object sender, EventArgs e)
KetNoi.moKetNoi(); if (KetNoi.dangNhap(txtuser.Text,txtpass.Text) == false)
MessageBox.Show("Tên đăng nhập/Mật khẩu không hợp lệ!"); else
FrmMain main = new FrmMain(); this.Hide(); main.ShowDialog();
Câu lệnh cho nút Exit private void btnexit_Click(object sender, EventArgs e)
Form7 f7 = new Form7(); this.Hide(); f7.ShowDialog();
Các thành phần trong màn hình
Tên Kiểu Mô tả txtuser TextBox Người dùng nhập
Username txtpass TextBox Người dùng nhập Password txtphone TextBox Người dùng nhập Number
Phone txtemail TextBox Người dùng nhập email txtrepass TextBox Người dùng nhập lại
Password checkBox1 CheckBox Hiển thị mật khẩu btnsignup Button Đăng ký khi đã điền đầy đủ
Downloaded by Quang Quang (khoa31141020806@gmail.com) thông tin btnexit Button Thoát khỏi màn hình đăng ký và trở về màn hình Magic Home
Câu lệnh cho nút Sign Up private void btnsignup_Click(object sender, EventArgs e)
{ string sql = "Insert into admin values(@Username,@Password
,@Numberphone,@Email,@Repassword)"; string[] name = { "@Username", "@Password",
"@Numberphone", "@Email", "@Repassword" }; object[] value = { txtuser.Text, txtpass.Text, txtphone.Text, txtemail.Text, txtrepass.Text };
KetNoi.updateData(sql, value, name, 5);
FrmMain fmain = new FrmMain(); this.Hide(); fmain.ShowDialog();
Câu lệnh cho nút Exit private void btnexit_Click(object sender, EventArgs e)
Form7 f7 = new Form7(); this.Hide(); f7.ShowDialog();
Câu lệnh cho nút Show Password private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked)
Downloaded by Quang Quang (khoa31141020806@gmail.com)
{ txtpass.PasswordChar = (char)0; txtrepass.PasswordChar = (char)0;
Downloaded by Quang Quang (khoa31141020806@gmail.com)
Downloaded by Quang Quang (khoa31141020806@gmail.com)
Các thành phần trong màn hình
Tên Kiểu Mô tả toolNhanVien ToolStripMenuItem Người dùng nhấp chuột vào menu nhân viên sẽ mở màn hình quản lý nhân viên toolKhachHang ToolStripMenuItem
Người dùng nhấp chuột vào menu khách hàng sẽ mở màn hình quản lý khách hàng toolAblum ToolStripMenuItem
Người dùng nhấp chuột vào menu album sẽ mở màn hình quản lý album toolHoaDon ToolStripMenuItem
Người dùng nhấp chuột vào menu hóa đơn sẽ mở màn hình quản lý hóa đơn toolThoat ToolStripMenuItem
Người dùng nhấp chuột vào menu thoát sẽ thoát về màn hình Magic Hom
Câu lệnh các nút trong quản lý o NHÂN VIÊN private void toolNhanVien_Click(object sender, EventArgs e) {
Form3 nv = new Form3(); this.Hide(); nv.ShowDialog();
} o KHÁCH HÀNG private void toolKhachHang_Click(object sender, EventArgs e) {
Form4 kh = new Form4(); this.Hide(); kh.ShowDialog();
Downloaded by Quang Quang (khoa31141020806@gmail.com) private void toolAblum_Click(object sender, EventArgs e) {
Form5 sp = new Form5(); this.Hide(); sp.ShowDialog();
Private void toolHoaDon_Click(object sender, EventArgs e) {
Form6 hd = new Form6(); this.Hide(); hd.ShowDialog();
Câu lệnh cho các nút trong giúp đỡ o THOÁT private void toolThoat_Click(object sender, EventArgs e) {
Form7 sign = new Form7(); this.Hide(); sign.ShowDialog();
Downloaded by Quang Quang (khoa31141020806@gmail.com) e Giao Diện Nhân Viên
Các thành phần trong màn hình
Trong hệ thống quản lý nhân viên, người dùng có thể nhập mã nhân viên qua ô txtmanv, tên nhân viên qua ô txttennv, và chọn ngày tháng năm sinh qua ô dtime Thông tin địa chỉ được nhập vào ô txtDiaChi, trong khi số điện thoại nhân viên được ghi vào ô txtsdt Để chọn ảnh nhân viên, người dùng sử dụng ô btnanh Để tìm kiếm nhân viên theo mã, ô txtTim được sử dụng cùng với nút btnTim Thông tin nhân viên sẽ được hiển thị trong bảng data DataGridView Ngoài ra, người dùng có thể thêm nhân viên mới vào cơ sở dữ liệu qua nút btnThem và sửa thông tin nhân viên hiện có qua nút btnSua.
Tải xuống bởi Quang Quang (khoa31141020806@gmail.com) Các nút chức năng bao gồm: nút Xóa để xóa nhân viên khỏi cơ sở dữ liệu, nút Làm mới để làm mới các ô textbox, và nút Quay trở về trang HOME Ngoài ra, có hai lựa chọn giới tính: RadioButton cho giới tính nam và RadioButton cho giới tính nữ.
PictureBox1 PictureBox Hiển thị ảnh của nhân viên
Câu lệnh load thông tin lên DataGridView private void Form3_Load(object sender, EventArgs e)
{ string sql = "select * from nhanvien"; data.DataSource = KetNoi.getData(sql);
Câu lệnh cho nút mở ảnh private void btnanh_Click(object sender, EventArgs e)
OpenFileDialog oFile = new OpenFileDialog(); if(oFile.ShowDialog() == DialogResult.OK)
{ pictureBox1.Image = Image.FromFile(oFile.FileName); lbanh.Text = Path.GetFileName(oFile.FileName);
Câu lệnh cho nút Thêm private void btnThem_Click(object sender, EventArgs e)
{ string sql = "Insert into nhanvien values(@MaNV,@TenNV
,@GTinh,@Nsinh,@DChi,@SDT,@Picture)"; string[] name = { "@MaNV", "@TenNV", "@GTinh", "@NSinh",
Downloaded by Quang Quang (khoa31141020806@gmail.com) bool gt = rdNam.Checked == true ? true : false; object[] value = { txtmanv.Text, txttennv.Text, gt, dtime.Value,txtDchi.Text, txtsdt.Text, lbanh.Text };
KetNoi.updateData(sql, value, name, 7); loadData();
Câu lệnh cho nút Xóa private void btnXoa_Click(object sender, EventArgs e)
{ int i = data.CurrentCell.RowIndex; if (i >= 0)
DialogResult dr = MessageBox.Show("Bạn có muốn xóa không?", "Thông báo", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK)
{ string ma = data.Rows[i].Cells[0].Value.ToString(); string sql = string.Format("delete from nhanvien where maNV
='{0}'", ma); object[] value = { }; string[] name = { };
KetNoi.updateData(sql, value, name, 0); loadData();
Câu lệnh cho nút Sửa private void btnSua_Click(object sender, EventArgs e)
{ string sql = string.Format("Update nhanvien set MaNV @MaNV,tenNV =@TenNV ,GTinh = @GTinh, NSinh=@NSinh, DChi
=@DChi ,SDT =@SDT,Picture = @Picture where MaNV ='{0}'", txtmanv.Text);
Downloaded by Quang Quang (khoa31141020806@gmail.com) string[] name = { "@MaNV", "@TenNV", "@GTinh", "@NSinh",
"@DChi", "@SDT", "@Picture" }; bool gt = rdNam.Checked == true ? true : false; object[] value = { txtmanv.Text, txttennv.Text, gt, dtime.Value, txtDchi.Text, txtsdt.Text, lbanh.Text };
KetNoi.updateData(sql, value, name, 7); loadData();
Câu lệnh cho nút Làm mới private void btnLammoi_Click(object sender, EventArgs e)
{ txttennv.Clear(); txtmanv.Clear(); txtDchi.Clear(); txtsdt.Clear(); txttennv.Focus();
Câu lệnh cho nút Home private void btntrangchu_Click(object sender, EventArgs e)
FrmMain main = new FrmMain(); this.Hide(); main.ShowDialog();
Câu lệnh cho nút Tìm kiếm private void btnTim_Click(object sender, EventArgs e)
Downloaded by Quang Quang (khoa31141020806@gmail.com) string sql = string.Format("select * from nhanvien where MaNV like N'%{0}%'", txtTim.Text); data.DataSource = KetNoi.getData(sql);
The code snippet demonstrates how to display employee information in text boxes when a cell in the DataGridView is clicked It retrieves the current row index and populates the text boxes with the employee's ID and name from the respective cells Additionally, it checks the value of the gender cell, determining if it is marked as "True."
In the code snippet, the checkbox `rdNu` is set to true if a certain condition is met The text fields are populated with values from specific cells in a data table, including `dtime`, `txtDchi`, `txtsdt`, and `lbanh` The image path is constructed using a configuration setting combined with the value from `lbanh` Finally, the code checks if the file exists at the specified image path.
{ pictureBox1.Image = Image.FromFile(pathAnh);
Downloaded by Quang Quang (khoa31141020806@gmail.com) f Giao Diện Khách Hàng
Các thành phần trong màn hình
Trong hệ thống quản lý khách hàng, người dùng có thể nhập thông tin qua các trường như mã khách hàng (txtKH), tên khách hàng (txttenKH), và địa chỉ khách hàng (txtDchi) Để chọn giới tính, có hai tùy chọn là nam (rdNam) và nữ (rdNu) Người dùng cũng có thể nhập số điện thoại (txtSDT) và mã khách hàng cần tìm (txtTim) để tra cứu thông tin Các chức năng bao gồm tìm kiếm khách hàng (btnTim), thêm khách hàng mới vào cơ sở dữ liệu (btnthem), và xóa khách hàng khỏi cơ sở dữ liệu (btnXoa).
Quang Quang đã tải xuống thông tin khách hàng qua email khoa31141020806@gmail.com Các nút chức năng bao gồm: "Sửa thông tin khách hàng" (btnSua), "Làm mới các ô textbox" (btnlmoi), và "Quay về màn hình HOME" (btntrangchu) Dữ liệu được hiển thị trong DataGridView để cung cấp thông tin chi tiết về khách hàng.
Câu lệnh load thông tin lên DataGridView private void Form4_Load(object sender, EventArgs e)
{ string sql = "select * from khachhang"; data.DataSource = KetNoi.getData(sql);
Câu lệnh cho nút Thêm private void btnthem_Click(object sender, EventArgs e)
{ string sql = "Insert into khachhang values(@MaKH,@TenKH,@GTinh,@DChi,@SDT)"; string[] name = { "@MaKH", "@TenKH", "@GTinh" , "@DChi",
"@SDT" }; bool gt = rdNam.Checked == true ? true : false; object[] value = { txtKH.Text, txttenKH.Text, gt , txtDChi.Text, txtSDT.Text };
KetNoi.updateData(sql, value, name, 5); loadData();
Câu lệnh cho nút Xóa private void btnXoa_Click(object sender, EventArgs e)
Downloaded by Quang Quang (khoa31141020806@gmail.com)
{ int i = data.CurrentCell.RowIndex; if (i >= 0)
DialogResult dr = MessageBox.Show("Bạn có muốn xóa không?", "Thông báo", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK)
{ string ma = data.Rows[i].Cells[0].Value.ToString(); string sql = string.Format("delete from khachhang where maKH ='{0}'", ma); object[] value = { }; string[] name = { };
KetNoi.updateData(sql, value, name, 0); loadData();
Câu lệnh cho nút Sửa private void btnSua_Click(object sender, EventArgs e)
{ string sql = string.Format("Update khachhang set MaKH @MaKH,TenKH =@TenKH , GTinh=@GTinh, DChi =@DChi ,SDT
=@SDT where MaKH ='{0}'", txtKH.Text); string[] name = { "@MaKH", "@TenKH", "@GTinh", "@DChi",
"@SDT" }; bool gt = rdNam.Checked == true ? true : false; object[] value = { txtKH.Text, txttenKH.Text, gt , txtDChi.Text, txtSDT.Text };
KetNoi.updateData(sql, value, name, 5); loadData();
Downloaded by Quang Quang (khoa31141020806@gmail.com)
Câu lệnh cho nút Làm mới private void btnlmoi_Click(object sender, EventArgs e)
{ txttenKH.Clear(); txtKH.Clear(); txtDChi.Clear(); txtSDT.Clear(); txttenKH.Focus();
Câu lệnh cho nút Home private void btntrangchu_Click(object sender, EventArgs e)
FrmMain fmain = new FrmMain(); this.Hide(); fmain.ShowDialog();
Câu lệnh cho nút Tìm kiếm private void btnTim_Click(object sender, EventArgs e)
{ string sql = string.Format("select * from khachhangwhere MaKH like N'%{0}%'", txtTim.Text); data.DataSource = KetNoi.getData(sql);
Câu lệnh hiển thị thông tin nhân viên lên các ô textbox private void data_CellClick_1(object sender, DataGridViewCellEventArgs e)
{ int i = data.CurrentCell.RowIndex; txtKH.Text = data.Rows[i].Cells[0].Value.ToString(); txttenKH.Text = data.Rows[i].Cells[1].Value.ToString(); string gt = data.Rows[i].Cells[2].Value.ToString(); if (gt == "True")
Downloaded by Quang Quang (khoa31141020806@gmail.com)
} else rdNu.Checked = true; txtDChi.Text = data.Rows[i].Cells[3].Value.ToString(); txtSDT.Text = data.Rows[i].Cells[4].Value.ToString();
Các thành phần trong màn hình
Trong bài viết này, chúng ta sẽ tìm hiểu về các trường nhập liệu trong một ứng dụng quản lý album Người dùng có thể nhập mã album qua trường txtalb, tên album qua trường txttenalb, và chọn phiên bản album từ cbover Ngoài ra, các trường txtsoluong, txtgiavao và txtgiara cho phép người dùng nhập số lượng, giá mua và giá bán của album Để tìm kiếm album theo mã, người dùng có thể sử dụng trường txtTim và nút btnTim Cuối cùng, nút btnmo cho phép chọn ảnh hiển thị cho từng album.
Tải xuống album bởi Quang Quang (khoa31141020806@gmail.com) Sử dụng nút "Thêm" để thêm album mới vào cơ sở dữ liệu, nút "Xóa" để xóa album khỏi cơ sở dữ liệu, và nút "Sửa" để chỉnh sửa thông tin album Nút "Làm mới" sẽ làm mới các ô textbox, trong khi nút "Quay về trang HOME" sẽ đưa bạn trở lại trang chính Thông tin album được hiển thị trong DataGridView.
PictureBox1 PictureBox Hiển thị ảnh của từng album
Câu lệnh load thông tin lên DataGridView private void Form5_Load(object sender, EventArgs e)
{ string sql = "select * from sanpham"; data.DataSource = KetNoi.getData(sql);
Câu lệnh cho nút mở ảnh private void btnmo_Click(object sender, EventArgs e)
OpenFileDialog oFile = new OpenFileDialog(); if (oFile.ShowDialog() == DialogResult.OK)
{ pictureBox1.Image = Image.FromFile(oFile.FileName); lbanh.Text = Path.GetFileName(oFile.FileName);
Câu lệnh cho nút Thêm
Downloaded by Quang Quang (khoa31141020806@gmail.com) private void btnthem_Click(object sender, EventArgs e)
{ string sql = "Insert into sanpham values(@MaAlbum,@TenAlbum
,@MaVer,@SLuong,@GiaVao,@GiaRa,@Picture)"; string[] name = { "@MaAlbum", "@TenAlbum", "@MaVer",
"@SLuong", "@GiaVao", "@GiaRa", "@Picture" }; object[] value = { txtalb.Text, txttenalb.Text, cbover.SelectedValue,txtsoluong.Text,txtgiavao.Text,txtgiara.Text, lbanh.Text };
KetNoi.updateData(sql, value, name, 7); loadData();
Câu lệnh cho nút Xóa private void btnxoa_Click(object sender, EventArgs e)
{ int i = data.CurrentCell.RowIndex; if (i >= 0)
DialogResult dr = MessageBox.Show("Bạn có muốn xóa không?", "Thông báo", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK)
{ string ma = data.Rows[i].Cells[0].Value.ToString(); string sql = string.Format("delete from sanpham where
MaAlbum ='{0}'", ma); object[] value = { }; string[] name = { };
KetNoi.updateData(sql, value, name, 0); loadData();
Downloaded by Quang Quang (khoa31141020806@gmail.com)
Câu lệnh cho nút Sửa private void btnsua_Click(object sender, EventArgs e)
{ string sql = string.Format("Update sanpham set MaAlbum @MaAlbum,tenAlbum =@TenAlbum ,MaVer =@MaVer,SLuong
=@SLuong ,GiaVao =@GiaVao, GiaRa = @GiaRa,Picture = @Picture where MaAlbum ='{0}'", txtalb.Text); string[] name = { "@MaAlbum", "@TenAlbum", "@MaVer",
"@SLuong", "@GiaVao", "@GiaRa", "@Picture" }; object[] value = { txtalb.Text, txttenalb.Text, cbover.SelectedValue, txtsoluong.Text, txtgiavao.Text, txtgiara.Text, lbanh.Text };
KetNoi.updateData(sql, value, name, 7); loadData();
Câu lệnh cho nút Làm mới private void btnlmoi_Click(object sender, EventArgs e)
{ txttenalb.Clear(); txtalb.Clear(); txtsoluong.Clear(); txtgiavao.Clear(); txtgiara.Clear(); txttenalb.Focus();
Câu lệnh cho nút Home private void btntrangchu_Click(object sender, EventArgs e)
FrmMain main = new FrmMain(); this.Hide(); main.ShowDialog();
Downloaded by Quang Quang (khoa31141020806@gmail.com)
Câu lệnh cho nút Tìm kiếm private void btnTim_Click(object sender, EventArgs e)
{ string sql = string.Format("select * from sanpham where MaAlbum like N'%{0}%'", txtTim.Text); data.DataSource = KetNoi.getData(sql);
The code snippet demonstrates how to display employee information in text boxes when a cell in a DataGridView is clicked It retrieves the current row index and populates various text fields, such as `txtalb`, `txttenalb`, and `txtsoluong`, with corresponding values from the selected row Additionally, it sets the selected value of a combo box based on the data in the row The code also constructs a file path for an image using a configuration setting and checks if the image file exists.
{ pictureBox1.Image = Image.FromFile(pathAnh);
Downloaded by Quang Quang (khoa31141020806@gmail.com) h Giao Diện Hóa Đơn
Các thành phần trong màn hình
Trong bài viết này, chúng tôi mô tả các trường thông tin cần thiết cho việc nhập liệu hóa đơn Các trường bao gồm: mã hóa đơn (txtmahd), tên hóa đơn (txttenhd), mã nhân viên (txtmanv), tên nhân viên (txttennv), mã khách hàng (txtmakh), tên khách hàng (txttenkh) và mã Album (txtmalb) Mỗi trường đều yêu cầu người dùng nhập thông tin tương ứng để hoàn tất quy trình.
Txttenalbum TextBox Nhập tên Album cboVer ComboBox Chọn ver của album
Txtsoluong TextBox Nhập số lượng album khách hàng mua
Txttien TextBox Nhập số tiền khách hàng phải trả
Tải xuống bởi Quang Quang (khoa31141020806@gmail.com), dtime1 cho phép chọn ngày đặt hàng, dtime2 cho phép chọn ngày giao hàng Sử dụng txtdchi để nhập địa chỉ giao hàng và txtGhiChu để nhập yêu cầu của khách hàng txtTim cho phép nhập mã hóa đơn cần tìm, trong khi data hiển thị thông tin hóa đơn Các nút chức năng bao gồm btnthem để thêm hóa đơn mới vào cơ sở dữ liệu, btnxoa để xóa hóa đơn khỏi cơ sở dữ liệu, btnsua để sửa thông tin hóa đơn trong cơ sở dữ liệu, và btntrangchu để quay trở về màn hình chính.
Câu lệnh load thông tin lên DataGridView private void Form6_Load(object sender, EventArgs e)
{ string sql = "select * from LoaiVer"; cboVer.DataSource = KetNoi.getData(sql); cboVer.DisplayMember = "TenVer"; cboVer.ValueMember = "MaVer";
{ string sql = "select * from hoadon"; data.DataSource = KetNoi.getData(sql);
Downloaded by Quang Quang (khoa31141020806@gmail.com)
Câu lệnh cho nút Thêm private void btnthem_Click(object sender, EventArgs e)
{ string sql = "Insert into hoadon values(@MaHD, @TenHD,
@MaNV, @TenNV, @MaKH ,@TenKH , @MaAlbum, @TenAlbum,
@MaVer, @SLuong, @ThanhTien, @NgayDatHang, @NgayNhanHang,
@DiaChiNhan, @GhiChu)"; string[] name = { "@MaHD", "@TenHD", "@MaNV", "@TenNV",
"@MaKH", "@TenKH", "@MaAlbum", "@TenAlbum" , "@MaVer",
The code snippet initializes two arrays, one for keys and another for corresponding values, which include various text fields and selected values from a user interface The keys array contains identifiers such as "@DiaChiNhan" and "@GhiChu", while the values array captures user inputs like invoice number, employee details, customer information, album details, quantity, amount, and date selections.
KetNoi.updateData(sql, value, name, 15); loadData();
Câu lệnh cho nút Xóa private void btnxoa_Click(object sender, EventArgs e)
{ int i = data.CurrentCell.RowIndex; if (i >= 0)
DialogResult dr = MessageBox.Show("Bạn có muốn xóa không?", "Thông báo", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK)
{ string ma = data.Rows[i].Cells[0].Value.ToString(); string sql = string.Format("delete from hoadon where MaHD
Downloaded by Quang Quang (khoa31141020806@gmail.com) string[] name = { };
KetNoi.updateData(sql, value, name, 0); loadData();
Câu lệnh cho nút Sửa private void btnsua_Click(object sender, EventArgs e)
The SQL command updates the "hoadon" table by setting various fields such as "MaHD," "TenHD," "MaNV," "TenNV," "MaKH," "TenKH," "MaAlbum," "TenAlbum," "MaVer," "SLuong," "ThanhTien," "NgayDatHang," "NgayNhanHang," "DiaChiNhan," and "GhiChu" based on the provided parameters The update is executed where the "MaHD" matches the specified value from the input field.
"@MaKH", "@TenKH", "@MaAlbum", "@TenAlbum", "@MaVer",
The code snippet initializes two arrays, one for keys and another for values, which include various text fields and selected values from a user interface The keys array consists of identifiers such as "@DiaChiNhan" and "@GhiChu", while the values array captures user inputs like order ID, employee details, customer information, album details, quantity, amount, and timestamps.
KetNoi.updateData(sql, value, name, 15); loadData();
Câu lệnh cho nút Làm mới private void btnlammoi_Click(object sender, EventArgs e)