Hướng dẫn kết nối csdl sql với c#

-

Giới thiệu

Với sự cách tân và phát triển của công nghệ báo cáo, ngày này rất nhiều nghành nghề dịch vụ những cố gắng tạo những phần mềm làm chủ nhằm tiết kiệm ngân sách với tăng hiệu quả lao hễ như những phần mềm quản lý thành phầm, quản lý bán hàng, quản lý nhân sự, v.v. Làm sao chúng ta cũng có thể lập trình được một ứng dụng sử dụng tài liệu được lưu trữ tại 1 hệ quản ngại trị CSDL như thế nào kia ví dụ như Access hoặc Squốc lộ Server. Với sự Thành lập và hoạt động của .Net, chúng ta cũng có thể tạo ra gần như ứng dụng lập trình sẵn với CSDL một cách dễ ợt và mau lẹ. Đây là bài bác giải đáp mỗi bước biện pháp lập trình sẵn với cửa hàng dữ liệu thực hiện ngôn ngữ C# với hệ quản lí trị CSDL SQL Server.

Bạn đang xem: Hướng dẫn kết nối csdl sql với c#

Chuẩn bị trước

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

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

Thiết kế cơ sở dữ liêu đặt tên QLBanHang, trong những số đó tất cả bảng:

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

Thiết kết duyên diện:

Các phần hành lang cửa số co giãn hợp lý và phải chăng Lúc của sổ của Form pđợi to lớn hoặc thu nhỏ, ví dụ cửa sổ (3) luôn duy trì cố định ngơi nghỉ phía trái, phần cửa sổ (4) cùng (5) giãn nở lúc Form biến đổi form size, (1)(2) luôn nằm ở đầu cùng phía dưới cùng của Form.Các nút gồm thêm các phím tắt ví dụ như Alt + T mang lại nút Tìm kiếm, Alt + H mang lại nút Thêm, v.v.

*

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

Hỗ trợ những tiêu chí: MaSP, TenSP, NgaySX, NgayHetHan, DonGia

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

Khi ấn nút ít Tìm:

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

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


Sẽ xoá Trắng những control vào grbChiTiet với nhị nút ít LưuHuỷ vẫn kích hoạt.Cấm Clichồng vào những nút Sửa, Xoá.Khi ấn nút Huỷ, đang thoát ra khỏi công dụng thêm (Xoá trắng grbChiTiet, không cho nhập dữ liệu)khi ấn vào nút Lưu, ví như thêm bắt đầu thành công, update lại tài liệu vào dgvDanhSachc) Chức năng Sửa

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

Nút ít Sửa chỉ mang đến Enable = True Lúc người tiêu dùng chọn 1 bản ghi vào dgvDanhSach.

Xem thêm: Vì Sao Phải Bảo Vệ Đất Hợp Lý, Vì Sao Phải Sử Dụng Đất Trồng Một Cách Hợp Lý

Khi ấn nút ít Sửa:

Cấm Click vào các nút ít Thêm, Xoá.grbChiTiet được 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ỏ. Khi ấn nút ít Huỷ, đang thoát khỏi chức năng Sửa (cnóng Cliông xã vào nút Sửa, có thể chấp nhận được Click vào nú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 cho phép Click khi người dùng lựa chọn 1 bản ghi trong dgvDanhSach

khi ấn nút Xoá:

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

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

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

*

Giao diện cửa sổ dự ánToolbox: cất các control chất nhận được chúng ta kéo thả vào đồ họa. Trong áp dụng này chúng ta đang thực hiện những control: Label, TextBox, DateTimePicker, Button, Spliter, Panel, GroupBoxSolution Explorer: cất toàn thể tài nguyên dự án công trình nlỗi những file code, các thỏng viện …Properties: cất những thuộc tính, những sự kiện của control với formDường như còn tồn tại những cửa sổ khác như Server Explorer, Error List, Output …, nếu không thấy cửa sổ như thế nào chúng ta cũng có thể vào menu View nhằm chọn.Project ban đầu khởi tạo nên 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 với triển khai đổi khác những thuộc tính giả dụ quan trọng.

*

2. Tạo cơ sở dữ liệu

Lập trình CSDL với .NET tất cả một chuẩn tầm thường với những mối cung cấp cửa hàng tài liệu khác nhau, nó chỉ không giống nhau về .NET Data Provider. Trong bài xích này họ đã sử dụng hệ cai quản trị CSDL Squốc lộ Server được cài đặt mặc định Lúc cài đặt Visual Studio

Kích loài chuột đề nghị vào tên Project trong của sổ Solution Explorer > Add > New Item > Service-based Database

*

quý khách hàng ấn nút NextFinish nhằm dứt sinh sản file. Sau đó các bạn bắt gặp có một file QLBanHang.mdf xuất hiện trong hành lang cửa số Solution ExplorerKích đúp vào file này, chúng ta 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 con chuột bắt buộc chọn Add New Table, rồi triển khai chế tác bảng cùng với kết cấu nlỗi bên trên yêu cầu

*

3. Giao diện thiết kế

*

Thiết kế bối cảnh với đặt những ở trong tính
Phần giao diệnLoại controlCác ở trong tính
Cửa sổ chínhFormName = frmMatHangText = Quản lý sản phẩm
ErrorProviderName = errChiTiet
(1)PanelDoông chồng = Top
LabelName = lblTieuDe
(2)PanelDock = 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)GroupBoxDoông chồng = 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 chồng = Top
SpliterDock = Top
LabelText = Mã SP:
TextBoxName = txtTKMaSP
LabelText = Tên SP:
TextBoxName = txtTKTenSP
(5)GroupBoxText = Kết quảDochồng = Fill
DataGridViewName = dgvKetQua

Crúc ý nhằm kiến tạo được giao diện thân mật với người tiêu dùng với những control tự co giãn Lúc Form biến đổi kích thước cần thiết kế, chăm chú kéo các control đúng thứ từ nhỏng sau:Giao diện phần (1): là phần nhãn title, kéo control Panel vào Form và đặt thuộc tính Dock = Top làm cho Panel luôn nằm tại trên đầu của Form, sau đó kéo một Label nằm tại Panel này.Giao diện phần (2): là phần những nút ít Tìm kiếm, Thêm … cũng làm cho tương tự nlỗi phần (1), kéo control Panel và đặt thuộc tính Dock = Bottom nhằm Panel này luôn ở cuối của Form, kế tiếp new đặt những Button nằm ở Panel này.Giao diện phần (3): là phần cụ thể, kéo control GroupBox vào Form với đặt ở trong tính Dock = Left, tiếp nối kiến thiết các control mang đến nhập Mã SP, Tên SPhường. … Sau đó ta kéo thêm control Spliter và đặt ở trong tính Dochồng = Left nhằm cho phép người dùng đổi khác độ rộng giữa phần (3) với phần (4) cùng (5).Giao diện phần (4): là phần kiếm tìm kiếm, kéo control GroupBox vào Form cùng đặt nằm trong tính Dock = Top, hôm nay nó vẫn 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 kiếm tìm kiếm nlỗi Mã SP, Tên SP … Trong phần này ta cũng kéo control Spliter, đặt nằm trong tính Dochồng = Top để chất nhận được người tiêu dùng thay đổi phạm vi giữa phần (4) cùng phần (5)Giao diện phần (5): là phần hiển thị tài liệu, kéo control GroupBox và đặt trực thuộc tính Doông xã = Fill, sau đó kéo control DataGridView nằm trong GroupBox này nó đã chiếm phần cục bộ phần không khí còn sót 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 trên bàn phím thì nhỏ trỏ đã chạy tự trên -> thanh lịch trái -> xuống dưới -> sang trọng phải. Nếu đồ vật từ chúng ta kéo control không đúng thì Lúc ấn phím Tab vẫn dancing bừa bãi. quý khách hàng hoàn toàn có thể đặt lại bằng phương pháp vào menu View > Tab Order để đặt lại thứ từ Tab trên những control. Sau lúc để ngừng trở về lựa chọn lại menu View > Tab Order để hoàn thành.4. Phần code lập trình sẵn những chức năngKnhì báo .Net Data Provider mang lại SQL Server

using System.Data.SqlClient;Khai báo các đổi mới toàn bộ nằm ngay bên dưới classnamespace QLBanHang public partial class frmMatHang : Form //Knhị báo những biến đổi toàn cục SqlConnection con;//Khai báo đối tượng tiến hành liên kết cho cơ sở dữ liệu SqlComm& cmd;//Knhì báo đối tượng người sử dụng triển khai các câu lệnh truy nã vấn SqlDataAdapter dap;//Khai báo đối tượng kết nối DataSource cùng với DataSet DataSet ds;//Đối tượng chứa tài liệu tại local public frmMatHang() InitializeComponent(); Viết sự kiện Form_Load, xẩy ra Khi size khởi cồn lên. Chúng ta thực hiện khởi chế tạo kết nối và nạp tài liệu lên DataGridView private void frmMatHang_Load(object sender, EventArgs e) //Tạo đối tượng người tiêu dùng Connection nhỏ = new SqlConnection(); //Truyền vào chuỗi kết nối cho tới cơ sở tài liệu //Hotline Application.StartupPath để lấy đường truyền tới thỏng mục chứa tệp tin chạy chương trình nhỏ.ConnectionString =
"QLBanHang.mdf;Integrated Security=True;User Instance=True"; //Call cách tiến hành Load dự liệu LoadDuLieu("Select * from tblMatHang"); //Khi Form bắt đầu Load lên thì ẩn những bút Sửa với Xóa btnSua.Enabled = false; btnXoa.Enabled = false; //An groupbox chi tiet HienChiTiet(false); //Viết một hàm nạp tài liệu lên DataGrid private void LoadDuLieu(String sql) //tạo nên đối tượng người dùng DataSet ds = new DataSet(); //Khởi tạo ra đối tượng người sử dụng DataAdapter với hỗ trợ vào câu lệnh SQL cùng đối tượng Connection dap = new SqlDataAdapter(sql,con); //Dùng thủ tục Fill của DataAdapter để đổ tài liệu trường đoản cú DataSource cho tới DataSet dap.Fill(ds); //Gắn tài liệu tự DataSet lên DataGridView dgvKetQua.DataSource = ds.Tables<0>; //Pmùi hương thức ẩn hiện những control sinh hoạt groupbox cụ thể private void HienChiTiet(Boolean hien) txtMaSP..Enabled = hien; txtTenSPhường.Enabled = hien; dtpNgayHH.Enabled = hien; dtpNgaySX.Enabled = hien; txtDonVi.Enabled = hien; txtDonGia.Enabled = hien; txtGhiChu.Enabled = hien; //Ẩn hiện 2 nút Lưu cùng Hủy btnLuu.Enabled = hien; btnHuy.Enabled = hien; Chức năng tìm kiếm, thực hiện sự kiện Click của nút ít Tìm kiếm //Chức năng search tì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à Xóa btnSua.Enabled = false; btnXoa.Enabled = false; //Viet cau lenh SQL mang đến tyên ổn kiem String sql = "SELECT * FROM tblMatHang"; String dk = ""; //Tim theo MaSP khac rong if (txtTKMaSP..Text.Trim() != "") dk += " MaSP.. like "%" + txtTKMaSP.Text + "%""; //kiem tra TenSP va MaSP. khac rong if (txtTKTenSP..Text.Trim() != "" &và dk != "") dk += " AND TenSP. lượt thích N"%" + txtTKTenSP.Text + "%""; //Tyên ổn kiem theo TenSP khi MaSP la rong if (txtTKTenSPhường.Text.Trim() != "" && dk == "") dk += " TenSP like N"%" + txtTKTenSP.Text + "%""; //Ket hoi dk if (dk != "") sql += " WHERE" + dk; //Goi phương thức Load dữ liệu phối hợp điều kiện kiếm tìm kiếm LoadDuLieu(sql); Chức năng Thêm, áp dụng sự kiện Click của nút ít Thêm //Sự khiếu nại thêm new mặt hàng private void btnThem_Click(object sender, EventArgs e) lblTieuDe.Text = "THÊM MẶT HÀNG"; //Xoa trang GroupBox chi tiết sản phẩm XoaTrangChiTiet(); //Cam nut sua xoa btnSua.Enabled = false; btnXoa.Enabled = false; //Hiện GroupBox Chi ngày tiết HienChiTiet(true); Chức năng Sửa xảy ra Lúc lựa chọn một bạn dạng ghi trên DataGridView. Kích đúp vàp DataGridView, VS đang tạo nên auto sự kiện CellContentClick. Chúng ta mang quý giá hàng hiện thời thông qua tđê mê số của sự khiếu nại DataGridViewCellEventArgs e trả về qua nằm trong tính RowIndex. Sau đó ta viết sự khiếu nại Click của nút Sửa //Sư khiếu nại khi người dùng chọn 1 mặt hàng 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 linh tinh lên datagrid try txtMaSPhường.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ự kiện Cliông xã của nút í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 một bạn dạng ghi trên DataGridView. Chúng ta vẫn sử dụng lại sự kiện sinh sống CellContentClick của DataGridView nghỉ ngơi phía bên trên. Sau đó ta viết sự kiện Click của nút ít Xoá //Sự khiếu nại Click của nút ít Xóa private void btnXoa_Click(object sender, EventArgs e) //Bật Message Box chú ý người sử dụng if (MessageBox.Show("Bạn tất cả chắc chắn rằng xóa mã mặt hàng " + txtMaSPhường.Text + " không? Nếu tất cả ấn nút ít Lưu, ko thì ấn nút í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 dựa vào tâm trạng Enable của những nút ít Thêm, Sửa hoặc Xoá nhằm xác nhận tâm trạng thực hiện câu lệnh Squốc lộ //Sự khiếu nại cliông xã vào button Lưu private void btnLuu_Click(object sender, EventArgs e) string sql = ""; //Kiếm tra nếu như liên kết chưa msinh hoạt thì triển khai mở kết nối if (nhỏ.State != ConnectionState.Open) bé.Open(); //Chúng ta thực hiện control ErrorProvider nhằm hiển thị lỗi //Kiểm tra thương hiệu sản phầm bao gồm bị để trống ko if (txtTenSP.Text.Trim() == "") errChiTiet.SetError(txtTenSP.., "Quý khách hàng không để trống tên sản phẩm!"); return; else errChiTiet.Clear(); //Kiểm tra ngày chế tạo, lỗi ví như người sử dụng nhập vào trong ngày tiếp tế lớn hơn ngày hiện nay if (dtpNgaySX.Value > DateTime.Now) errChiTiet.SetError(dtpNgaySX, "Ngày cung cấp chưa phù hợp lệ!"); return; else errChiTiet.Clear(); //Kiểm tra ngày quá hạn coi có lớn hơn ngày tiếp tế không if (dtpNgaySX.Value > DateTime.Now) errChiTiet.SetError(dtpNgaySX, "Ngày thêm vào không hợp lệ!"); return; else errChiTiet.Clear(); //Kiểm tra ngày quá hạn coi có lớn hơn ngày cấp dưỡng không if (dtpNgayHH.Value 0) errChiTiet.SetError(txtMaSP, "Mã thành phầm trùng vào cơ sở dữ liệu"); return; errChiTiet.Clear(); //Insert vao DataBase sql = "INSERT INTO tblMatHang(MaSP,TenSPhường,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 cập nhật dữ liệu if (btnSua.Enabled == true) sql = "Update tblMatHang SET "; sql += "TenSPhường. = N"" + txtTenSP.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 MaSP = N"" + txtMaSPhường.Text + """; //Nếu nút Xóa enable thì triển khai xóa dữ liệu if (btnXoa.Enabled == true) sql = "Delete From tblMatHang Where MaSP =N"" + txtMaSP..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 con.Close(); //Ẩn hiện nay các nút tương xứng chức năng HienChiTiet(false); btnSua.Enabled = false; btnXoa.Enabled = false; }Kích vào nút ít Huỷ nhằm huỷ bỏ công việc vẫn 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 ít nhỏng 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 Thoát private void btnThoat_Click(object sender, EventArgs e) //Đóng size this.Close();

Download mã nguồn toàn thể chương trình

Chú ý:lúc bạn tải về mã mối cung cấp về, yêu cầu sửa đổi đường dẫn mang đến nơi đặt CSDL của công ty. Đây là source code test, phải tôi để hardcode chuỗi kết nối. Để xây cất ứng dụng chuyên nghiệp, chúng ta nêu lưu lại chữ chuỗi liên kết trong file tiện ích.config để luôn tiện đổi khác Lúc đi triển khai sản phẩm.Để nhập dữ liệu văn uống bản tất cả lốt giờ đồng hồ việt vào trong CSDL tự giao diện ứng dụng, bạn cần thêm ký kết trường đoản cú N trước quý hiếm của từng ngôi trường trong câu lệnh SQL, nhỏng ví dụ bên trên câu lệnh Insert, tôi đã thêm cho những ngôi trường MaSPhường, TenSP, DonVi, GhiChu.