Networks Business Online Việt Nam & International VH2

Lập trình Cơ sở dữ liệu với C# –  Giới thiệu  Chuẩn bị trước  Yêu cầu bài toán o a) Chức năng Tìm – StuDocu

Đăng ngày 06 November, 2022 bởi admin
 Giới thiệu  Chuẩn bị trước  Yêu cầu bài toán o a ) Chức năng Tìm kiếm o b ) Chức năng Thêm o c ) Chức năng Sửa o d ) Chức năng Xóa  Xây dựng chương trình o 1. Tạo mới Project o 2. Tạo cơ sở dữ liệu o 3. Giao diện phong cách thiết kế o 4. Phần code lập trình những tính năng

Giới thiệu
Với sự phát triển của công nghệ thông tin, ngày nay mọi lĩnh vực đều cố gắng xây dựng các phần
mềm quản lý để tiết kiệm chi phí và tăng hiệu quả lao động như các phần mềm quản lý sản
phẩm, quản lý bán hàng, quản lý nhân sự, v. Làm sao chúng ta có thể lập trình được một ứng
dụng sử dụng dữ liệu được lưu trữ ở một hệ quản trị CSDL nào đó ví dụ như Access hoặc SQL
Server. Với sự ra đời của .Net, bạn có thể xây dựng những ứng dụng lập trình với CSDL một
cách dễ dàng và nhanh chóng. Đây là bài hướng dẫn từng bước cách lập trình với cơ sở dữ liệu
sử dụng ngôn ngữ C# và hệ quản trị CSDL SQL Server.

Chuẩn bị trước  Cài đặt Visual Studio, bạn hoàn toàn có thể tải về phiên bản 2010  Có kỹ năng và kiến thức cơ bản về lập trình CSDL tại đây  Chuẩn viết code C # tại đây  Các câu lệnh SQL cơ bản như SELECT, INSERT, UPDATE, DELETE

Yêu cầu bài toán
Thiết kế cơ sở dữ liêu đặt tên QLBanHang, trong đó có bảng:
tblMatHang ( MaSP nchar(5), TenSP nvarchar(30), NgaySX Date, NgayHH Date, DonVi
nvarchar(10), DonGia Float, GhiChu nvarchar(200) )
Thiết kết giao diện:
 Các phần cửa sổ co giãn hợp lý khi của sổ của Form phóng to hoặc thu nhỏ, ví dụ cửa
sổ (3) luôn giữ cố định ở bên trái, phần cửa sổ (4)(5) co giãn khi Form thay đổi kích
thước, (1)(2) luôn nằm trên đầu và phía dưới cùng của Form.
 Các nút có gắn các phím tắt ví dụ như Alt + T cho nút Tìm kiếm, Alt + H cho nút Thêm ,
v.

 Cấm Click vào các nút Sửa, Xoá.
 Khi ấn nút Huỷ, sẽ thoát khỏi chức năng thêm (Xoá trắng grbChiTiet, không cho nhập
dữ liệu)
 Khi ấn vào nút Lưu, nếu thêm mới thành công, cập nhật lại dữ liệu trong dgvDanhSach
c) Chức năng Sửa

Tiêu đề: CẬP NHẬT MẶT HÀNG
Nút Sửa chỉ cho Enable = True khi người dùng chọn một bản ghi trong dgvDanhSach.
Khi ấn nút Sửa:
 Cấm Click vào các nút Thêm, Xoá.
grbChiTiet cho phép sửa dữ liệu. Trong grbChiTiet cho hiển thị nút lệnh Lưu, Huỷ bỏ.
Khi ấn nút Huỷ, sẽ thoát khỏi chức năng Sửa (cấm Click vào nút Sửa, cho phép Click vào
nút Thêm )
 Nếu Cập nhật thành công, cập nhật lại dgvDanhSach
d) Chức năng Xoá

Tiêu đề: XOÁ MẶT HÀNG
Nút Xoá chỉ cho phép Click khi người dùng chọn một bản ghi trong dgvDanhSach
Khi ấn nút Xoá :
 Cấm Click vào các nút Thêm, Sửa.
 Các control trên grbChiTiet không cho phép sửa dữ liệu. Trong grbChiTiet cho hiển thị
nút lệnh Lưu, Huỷ bỏ. Khi ấn nút Huỷ sẽ thoát khỏi chức năng Xoá (cấm Click vào
nút Xoá, cho phép Click vào nút Thêm )

* * Xây dựng chương trình

  1. Tạo mới Project**
     Kích vào menu Start > All Programs > Microsoft Visual Studio 2010 (tuỳ theo phiên
    bản bạn cài Microsoft Visual Studio 2015 )

 Rồi trên cửa sổ VS 2010 kích vào menu File > New > Project …
 Chọn ngôn ngữ C# và kiểu ứng dụng bạn lập trình. Trong trường hợp này bạn
chọn Windows Form Application

2. Tạo cơ sở dữ liệu
Lập trình CSDL với .NET có một chuẩn chung với các nguồn cơ sở dữ liệu khác nhau, nó chỉ

khác nhau về .NET Data Provider. Trong bài này

chúng ta sẽ sử dụng hệ quản trị

CSDL SQL Server được cài

mặc định khi cài Visual Studio

 Kích chuột phải vào tên Project trong của sổ Solution Explorer > Add > New Item >
Service-based Database

 Bạn ấn nút NextFinish để kết thúc tạo file. Sau đó bạn nhìn thấy có một
file QLBanHang xuất hiện trong cửa sổ Solution Explorer

 Kích đúp vào file này, bạn nhìn thấy nó xuất hiện cửa sổ Server Explorer, chọn tên
Database QLBanHang > Tables > kích chuột phải chọn Add New Table, rồi thực hiện tạo
bảng với cấu trúc như trên yêu cầu

Thiết kế cơ sở dữ liêu đặt tên QLBanHang, trong đó có bảng:
tblMatHang ( MaSP nchar(5), TenSP nvarchar(30), NgaySX Date, NgayHH Date, DonVi
nvarchar(10), DonGia Float, GhiChu nvarchar(200) )

3. Giao diện thiết kế
1,2,3,

Thiết kế giao diện và đặt các thuộc tính

Phần giao diện Loại control Các thuộc tính

Cửa sổ chính Form Name = frmMatHangText = Quản lý loại sản phẩmErrorProvider Name = errChiTiet ( 1 ) Panel Dock = TopLabel Name = lblTieuDe ( 2 ) Panel Dock = BottomButton Name = btnTimKiemText = và Tìm kiếmButtonName = btnThem Text = T và hêmButton Name = btnSua Text = và SửaButton Name = btnXoa Text = và Xóa( 4 ) GroupBox Text = Tìm kiếmDock = TopSpliter Dock = Top Label Text = Mã SP : TextBox Name = txtTKMaSP Label Text = Tên SP : TextBox Name = txtTKTenSP( 5 ) GroupBox Text = Kết quảDock = Fill

DataGridView Name = dgvKetQua
Chú ý để thiết kế được giao diện thân thiện với người dùng và các control tự co giãn khi
Form thay đổi kích thước cần thiết kế, chú ý kéo các control đúng thứ tự như sau:
 Giao diện phần (1) : là phần nhãn tiêu đề, kéo control Panel vào Form và đặt
thuộc tính Dock = Top để cho Panel luôn nằm ở trên đầu của Form, sau đó kéo
một Label nằm trên Panel này.
 Giao diện phần (2) : là phần các nút Tìm kiếm, Thêm … cũng làm tương tự như
phần (1), kéo control Panel và đặt thuộc tính Dock = Bottom để Panel này luôn nằm
cuối của Form, sau đó mới đặt các Button nằm trên Panel này.
 Giao diện phần (3) : là phần chi tiết, kéo control GroupBox vào Form và đặt thuộc
tính Dock = Left, sau đó thiết kế các control cho nhập Mã SP, Tên SP … Sau đó ta kéo
thêm control Spliter và đặt thuộc tính Dock = Left để cho phép người dùng thay đổi độ
rộng giữa phần (3) với phần (4)(5).
 Giao diện phần (4) : là phần tìm kiếm, kéo control GroupBox vào Form và đặt
thuộc tính Dock = Top, lúc này nó sẽ nằm ở trên phần còn lại. Sau đó đặt các control
cho phép nhập tìm kiếm như Mã SP, Tên SP … Trong phần này ta cũng kéo
control Spliter, đặt thuộc tính Dock = Top để cho phép người sử dụng thay đổi độ rộng
giữa phần (4) và phần (5)
 Giao diện phần (5) : là phần hiển thị dữ liệu, kéo control GroupBox và đặt thuộc
tính Dock = Fill, sau đó kéo control DataGridView nằm trong GroupBox này nó sẽ
chiếm toàn bộ phần không gian còn lại.

 Viết chương trình chạy trên Windows thì cần tuân theo chuẩn của Windows, ví dụ
khi ấn phím Tab trên bàn phím thì con trỏ sẽ chạy từ bên trên -> sang trái -> xuống
dưới -> sang phải. Nếu thứ tự bạn kéo control không đúng thì khi ấn phím Tab sẽ nhảy
lung tung. Bạn có thể đặt lại bằng cách vào menu View > Tab Order để đặt lại thứ tự
Tab trên các control. Sau khi đặt xong quay lại chọn lại menu View > Tab Order để kết
thúc.

{ / / T o đốếi t ng Connectionạ ượcon = new SqlConnection ( ) ; / / Truyếằn vào chuốỗi kếết nốếi t i c s d li uớ ơ ở ữ ệ/ / G i Application đ lâếy đ ng dâỗn t i th m c ch a fle ch y cọ ể ườ ớ ư ụ ứ ạ ươh ng trình con = @ ” Data Source =. \ SQLEXPRESS ; AttachDbFilename = ” + Application + @ ” \ QLBanHang ; Integrated Security = True ; User Instance = True ” ; / / G i ph ng th c Load d li uọ ươ ứ ự ệLoadDuLieu ( ” Select * from tblMatHang ” ) ; / / Khi Form m i Load lến thì n những bút S a và Xóaớ ẩ ửbtnSua = false ; btnXoa = false ;/ / An groupbox chi tiet HienChiTiet ( false ) ;} / / Viếết m t hàm n p d li u lến DataGridộ ạ ữ ệprivate void LoadDuLieu ( String sql ) {/ / t o đốếi t ng DataSetạ ượ ds = new DataSet ( ) ;/ / Kh i t o đốếi t ng DataAdapter và cung câếp vào câu l nh SQL và đốếi t ngở ạ ượ ệ ượ Connection dap = new SqlDataAdapter ( sql, con ) ;/ / Dùng ph ng th c Fill c a DataAdapter đ đ d li u t DataSource tươ ứ ủ ể ổ ữ ệ ừ ới DataSet dap ( ds ) ;/ / Gằến d li u t DataSet lến DataGridViewữ ệ ừ dgvKetQua = ds [ 0 ] ;} / / Ph ng th c n hi n những control groupbox chi tiếếtươ ứ ẩ ệ ởprivate void HienChiTiet ( Boolean hien )

{
txtMaSP = hien;

txtTenSP = hien ; dtpNgayHH = hien ;dtpNgaySX = hien ; txtDonVi = hien ;txtDonGia = hien ; txtGhiChu = hien ;/ / n hi n 2 nút L u và H yẨ ệ ư ủ btnLuu = hien ;btnHuy = hien ; }Ch c nằng tm kiếếm, s d ng s ki nứ ử ụ ự ệ Click c a nútủ Tìm kiếếm/ / Ch c nằng tm kiếếmứ private void btnTimKiem_Click ( object sender, EventArgs e ){ / / C p nh t trến nhãn tiếu đếằậ ậlblTieuDe = ” TÌM KIẾẾM M T HÀNG ” ; Ặ / / Câếm nút S a và XóaửbtnSua = false ; btnXoa = false ;/ / Viet cau lenh SQL cho tim kiem String sql = ” SELECT * FROM tblMatHang ” ;String dk = ” ” ; / / Tim theo MaSP khac rongif ( txtTKMaSP. Text ( ) ! = ” ” ) {dk + = ” MaSP like ‘ % ” + txtTKMaSP + ” % ‘ ” ;btnXoa = false ; / / Hi n GroupBox Chi tiếếtệHienChiTiet ( true ) ; }Ch c nằng S a x y ra khi ch n m t b n ghi trến DataGridView. Kích đứ ử ả ọ ộ ả úp vàp DataGridView, VS seỗ phát sinh t đ ng s ki nự ộ ự ệ CellContentClick. Chúng ta lâếy giá tr hàng hi n t i thống quaị ệ ạ tham sốế c a s ủ ự ki nệ DataGridViewCellEventArgs e tr vếằ qua thu c tnhả ộ RowIndex. Sau đó ta viếết s ki nự ệ Click c a ủ nút S aử/ / S ki n khi ng i dùng ch n m t hàng trến DataGridViewư ệ ườ ọ ộprivate void dgvKetQua_CellContentClick ( object sender, DataGridViewCellEventArgs e ) {/ / Hien thi nut sua btnSua = true ;btnXoa = true ; btnThem = false ;/ / Bằết lốỗi khi ng i s d ng kích linh tinh lến datagridườ ử ụ try{ txtMaSP = dgvKetQua [ 0, e ]. Value ( ) ;txtTenSP = dgvKetQua [ 1, e ]. Value ( ) ; dtpNgaySX = ( DateTime ) dgvKetQua [ 2, e ]. Value ;dtpNgayHH = ( DateTime ) dgvKetQua [ 3, e ]. Value ; txtDonVi = dgvKetQua [ 4, e ]. Value ( ) ;txtDonGia = dgvKetQua [ 5, e ]. Value ( ) ; txtGhiChu = dgvKetQua [ 6, e ]. Value ( ) ;} catch ( Exception ex ){ }} / / S ki n Click c a nút s aự ệ ủ ửprivate void btnSua_Click ( object sender, EventArgs e ) {/ / C p nh t tiếu đếằậ ậ lblTieuDe = ” C P NH T M HÀNG ” ; Ậ Ậ Ặ/ / n hai nút Thếm và S aẨ ử btnThem = false ;btnXoa = false ; / / Hi n gropbox chi tiếếtệHienChiTiet ( true ) ; }Ch c nằng Xóa x y ra khi ch n m t b n ghi trến DataGridView. Chúng tứ ả ọ ộ ả a vâỗn s d ng l i s ki n ử ụ ạ ự ệ ở CellContentClick c a DataGridView phía trến. Sau đó ta viếết s ki nủ ở ự ệ Click c a nútủ Xóa/ / S ki n Click c a nút Xóaự ệ ủprivate void btnXoa_Click ( object sender, EventArgs e ) {/ / B t Message Box c nh báo ng i s d ngậ ả ườ ử ụ if ( MessageBox ( ” B n có chằếc chằến xóa mã m t hàng ” + txtMaSP. ạ ặ Text + ” khống ? Nếếu có âến nút L u, khống thì âến nút H y “, ” Xóa s n ph m “, MessageBoxButtonsư ủ ả ẩ o ) = = DialogResult ) {

lblTieuDe = “XÓA M T HÀNG”;Ặ
btnThem = false;

btnSua = false ; / / Hi n gropbox chi tiếếtệHienChiTiet ( true ) ; }}

Source: https://vh2.com.vn
Category : Tin Học