Lập trình cơ sở dữ liệu

      181

Giới thiệu

Với sự phát triển của technology công bố, ngày này đều nghành nghề dịch vụ rất nhiều nỗ lực desgin các ứng dụng cai quản nhằm tiết kiệm chi phí ngân sách với tăng công dụng lao hễ nhỏng các phần mềm làm chủ thành phầm, quản lý bán hàng, cai quản nhân sự, v.v. Làm sao bạn có thể thiết kế được một vận dụng thực hiện tài liệu được tàng trữ tại một hệ cai quản trị cơ sở dữ liệu làm sao đó ví như Access hoặc SQL Server. Với sự Ra đời của .Net, chúng ta cũng có thể desgin số đông ứng dụng xây dựng cùng với DataBase một biện pháp thuận tiện cùng gấp rút. Đây là bài xích gợi ý từng bước một giải pháp thiết kế cùng với đại lý tài liệu thực hiện ngôn từ C# với hệ quản ngại trị CSDL Squốc lộ Server.

Bạn đang xem: Lập trình cơ sở dữ liệu

Chuẩn bị trước

Các câu lệnh Squốc lộ cơ phiên bản như SELECT, INSERT, UPDATE, DELETE

Yêu cầu bài xích toán

Thiết kế các đại lý dữ liêu khắc tên QLBanHang, trong những số ấy tất cả bảng:

tblMatHang( MaSP. nchar(5), TenSPhường nvarchar(30), NgaySX Date, NgayHH Date, DonVi nvarchar(10), DonGia Float , GhiChu nvarchar(200))

Thiết thành hôn diện:

Các phần cửa sổ co và giãn hợp lý và phải chăng khi của sổ của Form pchờ to lớn hoặc thu nhỏ tuổi, ví dụ hành lang cửa số (3) luôn duy trì cố định và thắt chặt làm việc phía bên trái, phần cửa sổ (4) với (5) giãn nở lúc Form chuyển đổi size, (1)(2) luôn nằm trên đầu và phía bên dưới thuộc của Form.Các nút ít tất cả đính thêm các phím tắt ví như Alt + T mang đến nút ít Tìm kiếm, Alt + H mang lại nút ít Thêm, v.v.

*

a) Chức năng Tìm kiếm

Hỗ trợ những tiêu chí: MaSP, TenSPhường., NgaySX, NgayHetHan, DonGia

Tiêu đề: TÌM KIẾM MẶT HÀNG

Khi ấn nút Tìm:

dgvDanhSach sẽ hiển thị tất cả những biết tin về những sản phẩm toại ý những tiêu chuẩn lựa chọn.Cấm Cliông chồng vào các nút ít Sửa, XoáKhi Cliông xã vào từng ngôi trường, những báo cáo sẽ hiển thị cụ thể sang trọng các control mặt grbChiTiet, dẫu vậy ko được cho phép sửa thay đổi tài liệu. Không đến kích vào nút ít Lưu, Huỷ trong grbChiTiet.b) Chức năng Thêm

Tiêu đề: THÊM MẶT HÀNG


Sẽ xoá white những control trong grbChiTiet cùng nhị nút LưuHuỷ vẫn kích hoạt.Cấm Cliông xã vào các nút ít Sửa, Xoá.Khi ấn nút Huỷ, vẫn 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 như thêm mới thành công xuất sắc, cập nhật lại tài liệu trong dgvDanhSachc) Chức năng Sửa

Tiêu đề: CẬPhường NHẬT MẶT HÀNG

Nút Sửa chỉ mang lại Enable = True Khi người dùng chọn một bạn dạng ghi vào dgvDanhSach.

Xem thêm: Cách Đổi Mật Khẩu Wifi Vnpt Igate Gw040, Tổng Hợp Pass Modem Vnpt Igate Gw020

Lúc ấn nút ít Sửa:

Cấm Cliông chồng vào những nút Thêm, Xoá.grbChiTiet cho phép sửa dữ liệu. Trong grbChiTiet mang lại hiển thị nút ít lệnh Lưu, Huỷ bỏ. lúc ấn nút ít Huỷ, đã thoát ra khỏi tính năng Sửa (cấm Clichồng vào nút Sửa, cho phép Clichồng vào nút ít Thêm)Nếu Cập nhật thành công xuất sắc, update lại dgvDanhSachd) Chức năng Xoá

Tiêu đề: XOÁ MẶT HÀNG

Nút ít Xoá chỉ có thể chấp nhận được Clichồng Khi người tiêu dùng lựa chọn 1 bản ghi trong dgvDanhSach

lúc ấn nút Xoá:

Cấm Clichồng vào những nút ít Thêm, Sửa.Các control trên grbChiTiet không được cho phép sửa tài liệu. Trong grbChiTiet cho hiển thị nút ít lệnh Lưu, Huỷ bỏ. Lúc ấn nút ít Huỷ vẫn thoát khỏi công dụng Xoá (cnóng Click vào nút Xoá, chất nhận được Cliông chồng vào nút ít Thêm)

Xây dựng cmùi hương trình

1. Tạo mới ProjectKích vào menu Start > All Programs > Microsoft Visual Studio 2010 (tuỳ theo phiên phiên bản các bạn cài)Rồi bên trên cửa sổ VS 2010 kích vào thực đơn File > New > Project …Chọn ngôn ngữ C# với đẳng cấp vận dụng bạn xây dựng. Trong ngôi trường vừa lòng này các bạn lựa chọn Windows Form Application

*

Giao diện hành lang cửa số dự ánToolbox: cất những control được cho phép chúng ta kéo thả vào giao diện. Trong vận dụng này chúng ta vẫn áp dụng những control: Label, TextBox, DateTimePicker, Button, Spliter, Panel, GroupBoxSolution Explorer: đựng tổng thể tài nguim dự án công trình nlỗi những file code, các thư viện …Properties: chứa các thuộc tính, các sự khiếu nại của control và formNgoài ra còn có những cửa sổ khác như Server Explorer, Error List, Output …, nếu như không thấy cửa sổ như thế nào bạn có thể vào thực đơn View để lựa chọn.Project thuở đầu khởi sản xuất tất cả Form1.cs là size khoác định, bạn cũng có thể kích loài chuột buộc phải lựa chọn Rename thành frmMatHang cùng triển khai biến hóa các ở trong tính ví như quan trọng.

*

2. Tạo cửa hàng dữ liệu

Lập trình DataBase với .NET bao gồm một chuẩn thông thường với những nguồn cửa hàng tài liệu không giống nhau, nó chỉ khác nhau về .NET Data Provider. Trong bài bác này bọn họ sẽ thực hiện hệ quản lí trị cơ sở dữ liệu Squốc lộ Server được sở hữu mặc định Lúc thiết lập Visual Studio

Kích loài chuột bắt buộc vào thương hiệu Project trong của sổ Solution Explorer > Add > New Item > Service-based Database

*

Quý Khách ấn nút ít NextFinish để dứt chế tạo tệp tin. Sau kia bạn bắt gặp gồm một file QLBanHang.mdf xuất hiện trong cửa sổ Solution ExplorerKích đúp vào file này, bạn nhìn thấy nó xuất hiện cửa sổ Server Explorer, lựa chọn thương hiệu Database QLBanHang > Tables > kích loài chuột đề xuất chọn Add New Table, rồi tiến hành sinh sản bảng với kết cấu như bên trên yêu thương cầu

*

3. Giao diện thiết kế

*

Thiết kế bối cảnh cùng đặt các trực thuộc tính
Phần giao diệnLoại controlCác thuộc tính
Cửa sổ chínhFormName = frmMatHangText = Quản lý sản phẩm
ErrorProviderName = errChiTiet
(1)PanelDock = Top
LabelName = lblTieuDe
(2)PanelDoông xã = Bottom
ButtonName = btnTimKiemText = &Tìm kiếm
ButtonName = btnThemText = T&hêm
ButtonName = btnSuaText = &Sửa
ButtonName = btnXoaText = &Xoá
ButtonName = btnThoatText = Th&oát
ButtonName = btnTimKiemText = &Tìm kiếm
 (3)GroupBoxDock = LeftText = Chi tiết
SpliterDochồng = Left
LabelText = Mã SP:
TextBoxName = txtMaSP
LabelText = Tên SP:
TextBoxName = txtTenSP
LabelText = Ngày SX:
DateTimePickerName = dtpNgaySXFormat=Short
LabelText = Ngày HH:
DateTimePickerName = dtpNgayHHFormat=Short
LabelText = Đơn vị:
TextBoxName = txtDonVi
LabelText = Đơn giá:
TextBoxName = txtDonGiaTextAlign = Right
LabelText = Ghi chú:
TextBoxName = txtGhiChuMultiline = True
ButtonName = btnLuuText = &Lưu
ButtonName = btnHuyText = &Huỷ
(4)GroupBoxText = Tìm kiếmDoông xã = Top
SpliterDoông xã = Top
LabelText = Mã SP:
TextBoxName = txtTKMaSP
LabelText = Tên SP:
TextBoxName = txtTKTenSP
(5)GroupBoxText = Kết quảDochồng = Fill
DataGridViewName = dgvKetQua

Chú ý nhằm thiết kế được đồ họa thân mật và gần gũi cùng với người dùng cùng những control tự co giãn lúc Form thay đổi form size quan trọng kế, chăm chú kéo các control đúng máy tự nhỏng sau:Giao diện phần (1): là phần nhãn title, kéo control Panel vào Form với đặt trực thuộc tính Dock = Top để cho Panel luôn luôn nằm tại vị trí bên trên đầu của Form, tiếp đến kéo một Label nằm trong Panel này.Giao diện phần (2): là phần những nút ít Tìm tìm, Thêm … cũng làm tương tự như như phần (1), kéo control Panel cùng đặt nằm trong tính Doông chồng = Bottom nhằm Panel này luôn ở cuối của Form, sau đó bắt đầu đặ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ới đặt trực thuộc tính Doông chồng = Left, kế tiếp thi công những control mang lại nhập Mã SP, Tên SP … Sau đó ta kéo thêm control Spliter cùng đặt trực thuộc tính Doông chồng = Left nhằm được cho phép người dùng chuyển đổi độ rộng giữa phần (3) cùng với phần (4) với (5).Giao diện phần (4): là phần search kiếm, kéo control GroupBox vào Form cùng đặt ở trong tính Doông chồng = Top, hôm nay nó đang nằm tại vị trí bên trên phần còn lại. Sau kia đặt các control được cho phép nhập tra cứu tìm nhỏng Mã SPhường, Tên SP … Trong phần này ta cũng kéo control Spliter, đặt ở trong tính Doông chồng = Top nhằm cho phép người sử dụng chuyển đổi độ rộng giữa phần (4) với phần (5)Giao diện phần (5): là phần hiển thị tài liệu, kéo control GroupBox với đặt trực thuộc tính Dochồng = Fill, tiếp đến kéo control DataGridView phía trong GroupBox này nó đang chiếm phần toàn cục phần không khí còn lại.Viết chương trình chạy trên Windows thì nên cần tuân theo chuẩn chỉnh của Windows, ví dụ Khi ấn phím Tab bên trên keyboard thì bé trỏ sẽ chạy tự trên -> sang trái -> xuống dưới -> lịch sự phải. Nếu lắp thêm từ chúng ta kéo control sai trái thì lúc ấn phím Tab sẽ khiêu vũ bừa bãi. Quý Khách có thể đặt lại bằng phương pháp vào menu View > Tab Order để đặt lại sản phẩm từ Tab bên trên các control. Sau khi để hoàn thành quay trở lại lựa chọn lại menu View > Tab Order để xong xuôi.4. Phần code lập trình sẵn các chức năngKnhì báo .Net Data Provider cho SQL Server

using System.Data.SqlClient;Knhị báo các đổi mới toàn thể nằm ở bên dưới classnamespace QLBanHang public partial class frmMatHang : Form //Khai báo các trở thành cục bộ SqlConnection con;//Knhì báo đối tượng triển khai liên kết mang lại các đại lý dữ liệu SqlCommand cmd;//Khai báo đối tượng người tiêu dùng thực hiện các câu lệnh truy vấn SqlDataAdapter dap;//Khai báo đối tượng người sử dụng kết nối DataSource cùng với DataSet DataSet ds;//Đối tượng chứa tài liệu trên local public frmMatHang() InitializeComponent(); Viết sự khiếu nại Form_Load, xẩy ra lúc form khởi rượu cồn lên. Chúng ta thực hiện khởi tạo nên liên kết với hấp thụ tài liệu lên DataGridView private void frmMatHang_Load(object sender, EventArgs e) //Tạo đối tượng Connection bé = new SqlConnection(); //Truyền vào chuỗi liên kết tới các đại lý tài liệu //Điện thoại tư vấn Application.StartupPath để lấy băng thông cho tới tlỗi mục cất tệp tin chạy lịch trình nhỏ.ConnectionString =
"QLBanHang.mdf;Integrated Security=True;User Instance=True"; //điện thoại tư vấn phương thức Load dự liệu LoadDuLieu("Select * from tblMatHang"); //khi Form bắt đầu Load lên thì ẩn những cây bút Sửa với Xóa btnSua.Enabled = false; btnXoa.Enabled = false; //An groupbox bỏ ra tiet HienChiTiet(false); //Viết một hàm nạp tài liệu lên DataGrid private void LoadDuLieu(String sql) //sản xuất đối tượng người dùng DataSet ds = new DataSet(); //Khởi sinh sản đối tượng người tiêu dùng DataAdapter và hỗ trợ vào câu lệnh SQL với đối tượng người dùng Connection dap = new SqlDataAdapter(sql,con); //Dùng phương thức Fill của DataAdapter nhằm đổ dữ liệu từ bỏ DataSource cho tới DataSet dap.Fill(ds); //Gắn dữ liệu tự DataSet lên DataGridView dgvKetQua.DataSource = ds.Tables<0>; //Phương thơm thức ẩn hiện nay các control ngơi nghỉ groupbox chi tiết private void HienChiTiet(Boolean hien) txtMaSP..Enabled = hien; txtTenSP.Enabled = hien; dtpNgayHH.Enabled = hien; dtpNgaySX.Enabled = hien; txtDonVi.Enabled = hien; txtDonGia.Enabled = hien; txtGhiChu.Enabled = hien; //Ẩn hiện nay 2 nút Lưu và Hủy btnLuu.Enabled = hien; btnHuy.Enabled = hien; Chức năng tìm tìm, áp dụng sự kiện Click của nút Tìm kiếm //Chức năng kiếm tìm kiếm private void btnTimKiem_Click(object sender, EventArgs e) //Cập nhật bên trên nhãn title lblTieuDe.Text = "TÌM KIẾM MẶT HÀNG"; //Cấm nút Sửa với Xóa btnSua.Enabled = false; btnXoa.Enabled = false; //Viet cau lenh Squốc lộ cho tlặng kiem String sql = "SELECT * FROM tblMatHang"; String dk = ""; //Tyên theo MaSPhường khac rong if (txtTKMaSP..Text.Trim() != "") dk += " MaSPhường like "%" + txtTKMaSPhường.Text + "%""; //kiem tra TenSP.. va MaSPhường khac rong if (txtTKTenSP..Text.Trim() != "" && dk != "") dk += " AND TenSP lượt thích N"%" + txtTKTenSP.Text + "%""; //Tyên ổn kiem theo TenSPhường Khi MaSP la rong if (txtTKTenSP..Text.Trim() != "" && dk == "") dk += " TenSP.. lượt thích N"%" + txtTKTenSPhường.Text + "%""; //Ket hoi dk if (dk != "") sql += " WHERE" + dk; //Goi cách làm Load dữ liệu phối hợp ĐK search kiếm LoadDuLieu(sql); Chức năng Thêm, áp dụng sự kiện Click của nút Thêm //Sự kiện thêm new sản phẩm private void btnThem_Click(object sender, EventArgs e) lblTieuDe.Text = "THÊM MẶT HÀNG"; //Xoa trang GroupBox chi tiết thành phầm XoaTrangChiTiet(); //Cam nut sua xoa btnSua.Enabled = false; btnXoa.Enabled = false; //Hiện GroupBox Chi huyết HienChiTiet(true); Chức năng Sửa xẩy ra Lúc lựa chọn 1 phiên bản ghi trên DataGridView. Kích đúp vàp DataGridView, VS sẽ tạo ra tự động hóa sự kiện CellContentClick. Chúng ta rước quý giá mặt hàng hiện giờ trải qua tđắm đuối số của sự khiếu nại DataGridViewCellEventArgs e trả về qua thuộc tính RowIndex. Sau kia ta viết sự khiếu nại Click của nút Sửa //Sư khiếu nại Lúc người tiêu dùng chọn một hàng bên trên DataGridView private void dgvKetQua_CellContentClick(object sender, DataGridViewCellEventArgs e) //Hien thi nut sua btnSua.Enabled = true; btnXoa.Enabled = true; btnThem.Enabled = false; //Bắt lỗi khi người sử dụng kích linc tinch lên datagrid try txtMaSP.Text = dgvKetQua<0, e.RowIndex>.Value.ToString(); txtTenSP.Text = dgvKetQua<1, e.RowIndex>.Value.ToString(); dtpNgaySX.Value = (DateTime)dgvKetQua<2, e.RowIndex>.Value; dtpNgayHH.Value = (DateTime)dgvKetQua<3, e.RowIndex>.Value; txtDonVi.Text = dgvKetQua<4, e.RowIndex>.Value.ToString(); txtDonGia.Text = dgvKetQua<5, e.RowIndex>.Value.ToString(); txtGhiChu.Text = dgvKetQua<6, e.RowIndex>.Value.ToString(); catch (Exception ex) //Sự khiếu nại Cliông xã của nút sửa private void btnSua_Click(object sender, EventArgs e) //Cập nhật tiêu đề lblTieuDe.Text = "CẬP NHẬT MẶ HÀNG"; //Ẩn nhì nút ít Thêm cùng Sửa btnThem.Enabled = false; btnXoa.Enabled = false; //Hiện gropbox cụ thể HienChiTiet(true); Chức năng Xoá xẩy ra khi lựa chọn 1 bạn dạng ghi bên trên DataGridView. Chúng ta vẫn sử dụng lại sự khiếu nại sinh sống CellContentClick của DataGridView sinh hoạt phía bên trên. Sau đó ta viết sự khiếu nại Click của nút ít Xoá //Sự khiếu nại Clichồng của nút ít Xóa private void btnXoa_Click(object sender, EventArgs e) //Bật Message Box lưu ý người tiêu dùng if (MessageBox.Show("quý khách có chắc chắn rằng xóa mã sản phẩm " + txtMaSP.Text + " không? Nếu có ấn nút ít Lưu, không thì ấn nút Hủy", "Xóa sản phẩm", MessageBoxButtons.YesNo) == DialogResult.Yes) lblTieuDe.Text = "XÓA MẶT HÀNG"; btnThem.Enabled = false; btnSua.Enabled = false; //Hiện gropbox cụ thể HienChiTiet(true); Chức năng Lưu, chúng ta phụ thuộc tâm lý Enable của các nút Thêm, Sửa hoặc Xoá nhằm xác thực tâm lý triển khai câu lệnh Squốc lộ //Sự kiện cliông xã vào button Lưu private void btnLuu_Click(object sender, EventArgs e) string sql = ""; //Kiếm tra giả dụ liên kết chưa msống thì tiến hành msinh hoạt liên kết if (nhỏ.State != ConnectionState.Open) bé.Open(); //Chúng ta thực hiện control ErrorProvider để hiển thị lỗi //Kiểm tra thương hiệu sản phầm có bị nhằm trống không if (txtTenSPhường.Text.Trim() == "") errChiTiet.SetError(txtTenSPhường, "quý khách hàng ko để trống tên sản phẩm!"); return; else errChiTiet.Clear(); //Kiểm tra ngày tiếp tế, lỗi nếu người tiêu dùng nhập vào trong ngày chế tạo lớn hơn ngày bây giờ if (dtpNgaySX.Value > DateTime.Now) errChiTiet.SetError(dtpNgaySX, "Ngày thêm vào chưa hợp lệ!"); return; else errChiTiet.Clear(); //Kiểm tra ngày hết hạn coi tất cả to hơn ngày thêm vào không if (dtpNgaySX.Value > DateTime.Now) errChiTiet.SetError(dtpNgaySX, "Ngày cấp dưỡng không phù hợp lệ!"); return; else errChiTiet.Clear(); //Kiểm tra ngày hết hạn sử dung coi có to hơn ngày cấp dưỡng ko if (dtpNgayHH.Value 0) errChiTiet.SetError(txtMaSP.., "Mã sản phẩm trùng vào cơ sở dữ liệu"); return; errChiTiet.Clear(); //Insert vao DataBase sql = "INSERT INTO tblMatHang(MaSP,TenSP.,NgaySX,NgayHH,DonVi,DonGia,GhiChu)VALUES ("; sql += "N"" + txtMaSP..Text + "",N"" + txtTenSP..Text + "","" + dtpNgaySX.Value.Date + "","" + dtpNgayHH.Value.Date + "",N"" + txtDonVi.Text + "",N"" + txtDonGia.Text + "",N"" + txtGhiChu.Text + "")"; } //Nếu nút ít Sửa enable thì thực hiện update tài liệu if (btnSua.Enabled == true) sql = "Update tblMatHang SET "; sql += "TenSP. = N"" + txtTenSPhường.Text + "","; sql += "NgaySX = "" + dtpNgaySX.Value.Date + "","; sql += "NgayHH = "" + dtpNgayHH.Value.Date + "","; sql += "DonVi = N"" + txtDonVi.Text + "","; sql += "DonGia = "" + txtDonGia.Text + "","; sql += "GhiChu = N"" + txtGhiChu.Text + "" "; sql += "Where MaSPhường = N"" + txtMaSP.Text + """; //Nếu nút ít Xóa enable thì triển khai xóa dữ liệu if (btnXoa.Enabled == true) sql = "Delete From tblMatHang Where MaSP =N"" + txtMaSPhường.Text + """; //Thuc thi cau lenh sql cmd = new SqlCommand(sql, con); cmd.ExecuteNonQuery(); //Cap nhat lai DataGrid sql = "Select * from tblMatHang"; LoadDuLieu(sql); //dong ket noi nhỏ.Close(); //Ẩn hiện những nút tương xứng công dụng HienChiTiet(false); btnSua.Enabled = false; btnXoa.Enabled = false; }Kích vào nút ít Huỷ để huỷ bỏ công việc đang làm cho //Click vào nút Hủy private void btnHuy_Click(object sender, EventArgs e) //Thiết lập lại những nút nlỗi lúc đầu btnXoa.Enabled = false; btnSua.Enabled = false; btnThem.Enabled = true; //xoa trang XoaTrangChiTiet(); //Cam nhap HienChiTiet(false); Kích vào nút ít Thoát private void btnThoat_Click(object sender, EventArgs e) //Đóng khung this.Close();

Download mã mối cung cấp toàn thể chương trình

Chú ý:khi bạn tải về mã nguồn về, buộc phải chỉnh sửa băng thông mang lại vị trí đặt DataBase của công ty. Đây là source code kiểm tra, đề xuất tôi để hardcode chuỗi kết nối. Để tạo ra ứng dụng bài bản, các bạn nêu giữ chữ chuỗi kết nối trong file app.config để luôn thể biến hóa khi đi tiến hành thành phầm.Để nhập tài liệu văn phiên bản bao gồm vệt tiếng việt vào vào cơ sở dữ liệu từ bối cảnh phần mềm, bạn phải thêm ký từ bỏ N trước giá trị của từng trường trong câu lệnh Squốc lộ, nlỗi ví dụ bên trên câu lệnh Insert, tôi sẽ thêm cho các trường MaSP.., TenSP, DonVi, GhiChu.