Khởi tạo bảng Phiếu Chi

Một phần của tài liệu Báo cáo Đồ án phần mềm quản lý doanh nghiệp minilab (Trang 32 - 49)

CHƯƠNG 3 THIẾT KẾ HỆ THỐNG

3.1.10. Khởi tạo bảng Phiếu Chi

STT Khóa chính Tên trường Kiểu dữ liệu Diễn giải

1 X MaPhieuChi Varchar(50) Mã Phiếu Chi

2 MaDonDatHang Varchar(50) Mã Đơn Đặt Hàng

3 TongTien Float Tổng Tiền

4 NgayNhap Date Ngày Nhập

Khóa Ngoài

Số Tên Cột khóa ngoài Quan hệ với bảng

1 2

Câu truy vấn để tạo bảng

CREATE TABLE PhieuChi (

MaPhieuChi varchar(50)PRIMARY KEY, MaDonDatHang varchar(50), TongTien floatNOT NULL, NgayNhap DATE,

FOREIGN KEY (MaDonDatHang) REFERENCES DonDatHang(MaDonDatHang) );

3.1.11.Khởi tạo bảng Chi Tiết Hóa Đơn

STT Khóa chính Tên trường Kiểu dữ liệu Diễn giải

1 X MaHoaDon Varchar(50) Mã Hóa Đơn

2 X MaVatTu Varchar(50) Mã Vật Tư

3 X MaDichVu Varchar(50) Mã Dịch Vụ

4 SoLuong Int Số Lương

Khóa Ngoài

Số Tên Cột khóa ngoài Quan hệ với bảng

1 2

Câu truy vấn để tạo bảng

CREATE TABLE ChiTiet_HoaDon ( MaHoaDon varchar(50), MaVatTu varchar(50), MaDichVu varchar(50), SoLuong int NOT NULL,

PRIMARY KEY (MaHoaDon, MaVatTu MaDichVu, ),

FOREIGN KEY (MaHoaDon)REFERENCES HoaDon(MaHoaDon), FOREIGN KEY (MaVatTu)REFERENCES VatTu(MaVatTu), FOREIGN KEY (MaDichVu)REFERENCES DichVu(MaDichVu)

3.1.12.Khởi tạo bảng Chi Tiết Đơn Đặt Hàng Câu truy vấn để tạo bảng

STT Khóa chính Tên trường Kiểu dữ liệu Diễn giải

1 X MaDonDatHang Varchar(50) Mã Đơn Đặt Hàng

2 X MaVatTu Varchar(50) Mã Vật Tư

3 SoLuong int Số Lượng

CREATE TABLE ChiTiet_DonDatHang ( MaDonDatHang varchar(50), MaVatTu varchar(50), SoLuong int NOT NULL,

PRIMARY KEY (MaDonDatHang, MaVatTu),

FOREIGN KEY (MaDonDatHang) REFERENCES DonDatHang MaDonDatHang( ),

FOREIGN KEY (MaVatTu)REFERENCES VatTu(MaVatTu)

);

3.2. Thiết kế giao diện 3.2.1. Một số câu lệnh truy vấn SELECT * FROM NhaCungCap

Hinh 3.1 Bảng dữ liệu NhaCungCap

3.2.2 Cập Nhập – Thêm Thông Tin Khách Hàng

Để cập nhập thông tin giữa SQL và C# ta sử dụng Stored Procedure:

Stored procedures là các chương trình hoặc tập hợp các câu lệnh SQL được lưu trữ trong cơ sở dữ liệu.

Chúng được lưu trữ một cách an toàn và có thể được gọi và thực thi từ xa bằng cách sử dụng các lệnh gọi thích hợp từ các ứng dụng hoặc các truy vấn SQL khác.

Stored procedures thường chứa logic xử lý phức tạp hoặc thực hiện các nhiệm vụ cụ thể trong cơ sở dữ liệu như thêm, sửa đổi hoặc xóa dữ liệu, và chúng có thể được sử dụng để tối ưu hóa hiệu suất và bảo mật của cơ sở dữ liệu.

Khởi tạo một Stored procedures cho “Thêm Nhà Cung Cấp”

Khởi tạo một Stored procedures cho “Sửa Nhà Cung Cấp”

Khởi tạo một Stored procedures cho “Xóa Nhà Cung Cấp”

Khởi tạo một Stored procedures cho “Tìm Kiếm Nhà Cung Cấp”

Khởi tạo một Stored procedures cho “ Thêm Thông Tin Khách Hàng”

Khởi tạo một Stored procedures cho “Sửa Khách Hàng”

Khởi tạo một Stored procedures cho “Xóa Thông Tin Khách Hàng”

Khởi tạo một Stored procedures cho “Tìm Kiếm Khách Hàng"

3.2.3 Sự kiện và cấu trúc của các nút chức năng (thêm, sửa, xóa, tìm kiếm)

Những procedures trên có nhiệm vụ kết nối và lưu trữ cập nhập liên tục khi ta thao tác, làm việc trên chương trình C#

3.2.3.1 Tạo kết nối từ C# sang SQL

SqlConnection con;

SqlCommand cmd; //thực hiện câu lệnh SqlDataAdapter adt;

DataTable dt; //đổ dữ liệu vào

Để Load dữ liệu giữa SQL và WinForm C# ta cần khởi tạo hàm private LoadData private void LoadData()

{ try {

// Tạo câu lệnh SQL để lấy dữ liệu từ bảng NCC string query = "SELECT * FROM NhaCungCap";

// Tạo đối tượng SqlCommand cmd = new SqlCommand(query, con);

// Tạo đối tượng SqlDataAdapter để đổ dữ liệu vào DataTable adt = new SqlDataAdapter(cmd);

dt = new DataTable();

// Đổ dữ liệu vào DataTable adt.Fill(dt);

// Đặt DataTable làm nguồn dữ liệu cho DataGridView dataGridViewNCC.DataSource = dt;

con.Close();

}

3.2.3.2 Cập Nhập Nhà Cung Cấp

hình 3.2 Bảng Cập Nhập Nhà Cung Cấp A. Sự kiện nút Button “Thêm”

private void ThemNCC_Click(object sender, EventArgs e) {

(KiemTraThongTin())if {

try {

// Tạo kết nối và command

using (SqlConnection conn = new

// Giả sử tên stored procedure là SP_ThemNhaCungCap

// Thêm tham số

cmd.Parameters.Add("@MaNCC", SqlDbType.NVarChar).Value = txtMaNCC.Text;

cmd.Parameters.Add("@TenNCC", SqlDbType.NVarChar).Value = txtTenNCC.Text;

cmd.Parameters.Add("@DiaChi", SqlDbType.NVarChar).Value

= txtDiaChiNCC.Text;

cmd.Parameters.Add("@SoDienThoai", SqlDbType.NVarChar).Value = txtSdtNCC.Text;

// Mở kết nối và thực hiện stored procedure conn.Open();

cmd.ExecuteNonQuery();

}

} }

Ta kích hoạt được nút “Thêm”

Kết quả thu được:

B. Sự kiện kích hoạt nút sửa của bảng Cập Nhập Nhà Cung Cấp

private void SuaNCC_Click(object sender, EventArgs e) {

(if string.IsNullOrEmpty(txtMaNCC.Text) || txtMaNCC.Text == "Thêm mới không cần ID") {

MessageBox.Show("Vui lòng điền ID nhà cung cấp." "Thông báo");, txtMaNCC.Focus();

txtMaNCC.SelectAll();

}

else if (KiemTraThongTin()) {

try {

using (SqlConnection conn = new SqlConnection(connectString)) using (SqlCommand cmd = new SqlCommand())

{

cmd.Connection = conn;

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "SP_SuaNhaCungCap";

cmd.Parameters.Add("@MaNCC", SqlDbType.NVarChar).Value = txtMaNCC.Text;

cmd.Parameters.Add("@TenNCC", SqlDbType.NVarChar).Value = txtTenNCC.Text;

cmd.Parameters.Add("@DiaChi", SqlDbType.NVarChar).Value = txtDiaChiNCC.Text;

cmd.Parameters.Add("@SoDienThoai", SqlDbType.NVarChar).Value = txtSdtNCC.Text;

// Thực hiện kiểm tra thông tin trước khi mở kết nối (KiemTraThongTin())if

{

// Mở kết nối và thực hiện stored procedure conn.Open();

cmd.ExecuteNonQuery();

conn.Close();

LoadData();

MessageBox.Show("Sửa nhà cung cấp thành công." "Thông báo", , MessageBoxButtons.OK, MessageBoxIcon.Information);

} }

}

Ta kích hoạt được nút Sửa:

Kết quả thu được

MessageBox.Show("Vui lòng điền mã nhà cung cấp cần xóa.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

txtMaNCC.Focus();

} else { try {

using (SqlConnection conn = new SqlConnection(connectString)) using (SqlCommand cmd = new SqlCommand())

{

cmd.Connection = conn;

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "SP_XoaNhaCungCap";

// Thêm tham số cho stored procedure

cmd.Parameters.Add("@MaNCC", SqlDbType.NVarChar).Value = txtMaNCC.Text;

conn.Open();

cmd.ExecuteNonQuery();

conn.Close();

LoadData();

MessageBox.Show("Xóa nhà cung cấp thành công.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

} }

Khi ta nhập tên Mã Nhà Cung Cấp và click vào nút “Xóa”

Kết quả thu được:

D. Sự kiện kích hoạt nút Tìm Kiếm của bảng private void TimKiemNCC_Click(object sender, EventArgs e) {

try {

using (SqlConnection conn = new SqlConnection(connectString)) using (SqlCommand cmd = new SqlCommand())

{

cmd.Connection = conn;

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "SP_TimKiemMaNCC";

// Truyền giá trị tìm kiếm tổng quát từ người dùng

cmd.Parameters.Add("@MaNCC", SqlDbType.NVarChar).Value = txtMaNCC.Text;

conn.Open();

SqlDataAdapter adt = new SqlDataAdapter(cmd);

DataTable dt = new DataTable();

adt.Fill(dt);

dataGridViewNCC.DataSource = dt;

} }

catch (Exception ex) {

MessageBox.Show(ex.Message);

} }

Kết quả thu được

Một phần của tài liệu Báo cáo Đồ án phần mềm quản lý doanh nghiệp minilab (Trang 32 - 49)

Tải bản đầy đủ (PDF)

(55 trang)