Lập trình ứng dụng thêm – xóa – sửa trực tiếp trên DataGridview (Crub database on DataGridview use Cshap)
Chương trình có giao diện như video bên dưới :
– Ở trong ví dụ này, mình sử dụng database với test và bảng table là tbl_students. Các bạn có thể copy code Sql bên dưới để insert vào database để viết ứng dụng.
Bạn đang đọc: Lập trình ứng dụng thêm – xóa – sửa trực tiếp trên DataGridview (Crub database on DataGridview use Cshap)
USE [test] GO /****** Object: Table [dbo].[tbl_students] Script Date: 11/29/2015 15:45:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[tbl_students]( [id] [nchar](10) NOT NULL, [name] [nvarchar](50) NULL, [address] [nvarchar](150) NULL, [phone] [nchar](10) NULL, [email] [nvarchar](50) NULL, CONSTRAINT [PK_tbl_students] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
– Đầu tiên, tất cả chúng ta cần import thư viện sql client vào
using System.Data.SqlClient;
– Khai báo cáo biến liên kết với Microsoft Sql Server, biến này khai báo Global nha những bạn :
SqlConnection sqlCon = new SqlConnection("Server=(local); Database=test; Integrated Security=TRUE"); SqlCommandBuilder sqlCommand = null; SqlDataAdapter sqlAdapter = null; DataSet dataset = null;
– Tiếp đến, tất cả chúng ta viết thêm một void để load database từ cơ sở dữ liệu vào datagridview, ở đây tất cả chúng ta select thêm biến delete tạo một link hiển thị vào datagridview. Ở đây, những bạn chú ý quan tâm, vị trí tạo thêm trường delete mình có bôi đậm ở dưới trong đoạn code .
private void LoadData() { try { sqlAdapter = new SqlDataAdapter("SELECT *, 'Delete' AS [Delete] FROM tbl_students", sqlCon); sqlCommand = new SqlCommandBuilder(sqlAdapter); sqlAdapter.InsertCommand = sqlCommand.GetInsertCommand(); sqlAdapter.UpdateCommand = sqlCommand.GetUpdateCommand(); sqlAdapter.DeleteCommand = sqlCommand.GetDeleteCommand(); dataset = new DataSet(); sqlAdapter.Fill(dataset, "tbl_students"); dataGridView1.DataSource = null; dataGridView1.DataSource = dataset.Tables["tbl_students"]; for (int i = 0; i < dataGridView1.Rows.Count; i++) { DataGridViewLinkCell linkCell = new DataGridViewLinkCell(); dataGridView1[5, i] = linkCell; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
- Tiếp đến, tất cả chúng ta sẽ viết sự kiện formload để load database vào datagridview .
private void Form1_Load(object sender, EventArgs e) { try { sqlCon.Open(); LoadData(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
- Tiếp đến, chúng ta viết sự kiện CellContentClick cho datagridview. khi nhấn vào nút insert, update hay delete
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { try { if (e.ColumnIndex == 5) { string Task = dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString(); if ( Task == "Delete") { if (MessageBox.Show("Bạn có chắc chắm muốn xóa không?", "Đang xóa...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { int rowIndex = e.RowIndex; dataGridView1.Rows.RemoveAt(rowIndex); dataset.Tables["tbl_students"].Rows[rowIndex].Delete(); sqlAdapter.Update(dataset, "tbl_students"); } } else if(Task == "Insert") { int row = dataGridView1.Rows.Count - 2; DataRow dr = dataset.Tables["tbl_students"].NewRow(); dr["id"] = dataGridView1.Rows[row].Cells["id"].Value; dr["name"] = dataGridView1.Rows[row].Cells["name"].Value; dr["address"] = dataGridView1.Rows[row].Cells["address"].Value; dr["phone"] = dataGridView1.Rows[row].Cells["phone"].Value; dr["email"] = dataGridView1.Rows[row].Cells["email"].Value; dataset.Tables["tbl_students"].Rows.Add(dr); dataset.Tables["tbl_students"].Rows.RemoveAt(dataset.Tables["tbl_students"].Rows.Count - 1); dataGridView1.Rows.RemoveAt(dataGridView1.Rows.Count - 2); dataGridView1.Rows[e.RowIndex].Cells[5].Value = "Delete"; sqlAdapter.Update(dataset, "tbl_students"); } else if (Task == "Update") { int r = e.RowIndex; dataset.Tables["tbl_students"].Rows[r]["id"] = dataGridView1.Rows[r].Cells["id"].Value; dataset.Tables["tbl_students"].Rows[r]["name"] = dataGridView1.Rows[r].Cells["name"].Value; dataset.Tables["tbl_students"].Rows[r]["address"] = dataGridView1.Rows[r].Cells["address"].Value; dataset.Tables["tbl_students"].Rows[r]["phone"] = dataGridView1.Rows[r].Cells["phone"].Value; dataset.Tables["tbl_students"].Rows[r]["email"] = dataGridView1.Rows[r].Cells["email"].Value; sqlAdapter.Update(dataset, "tbl_students"); dataGridView1.Rows[e.RowIndex].Cells[5].Value = "Delete"; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
- Tiếp đến, ta viết sự kiện userAddRow để khi thêm một dòng mới vào cơ sở dữ liệu .
private void dataGridView1_UserAddedRow_1(object sender, DataGridViewRowEventArgs e) { try { int lastRow = dataGridView1.Rows.Count - 2; DataGridViewRow nRow = dataGridView1.Rows[lastRow]; DataGridViewLinkCell linkCell = new DataGridViewLinkCell(); dataGridView1[5, lastRow] = linkCell; nRow.Cells["Delete"].Value = "Insert"; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
- Và sau cuối tất cả chúng ta viết sự kiện khi double click vào datagridview để update một dòng dữ liệu .
private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) { try { int lastRow = e.RowIndex ; DataGridViewRow nRow = dataGridView1.Rows[lastRow]; DataGridViewLinkCell linkCell = new DataGridViewLinkCell(); dataGridView1[5, lastRow] = linkCell; nRow.Cells["Delete"].Value = "Update"; } catch (Exception ex) { MessageBox.Show(ex.Message); }
- Vậy là kết thúc, giờ đây những bạn hoàn toàn có thể chạy để test thử chương trình .
Cám ơn các bạn đã theo dõi bài viết của mình. Hãy like and share để ủng hộ chúng mình.
Download project Crub on Datagridview
Source: https://thomaygiat.com
Category : Kỹ Thuật Số
Chuyển vùng quốc tế MobiFone và 4 điều cần biết – MobifoneGo
Muốn chuyển vùng quốc tế đối với thuê bao MobiFone thì có những cách nào? Đừng lo lắng, bài viết này của MobiFoneGo sẽ giúp…
Cách copy dữ liệu từ ổ cứng này sang ổ cứng khác
Bạn đang vướng mắc không biết làm thế nào để hoàn toàn có thể copy dữ liệu từ ổ cứng này sang ổ cứng khác…
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel Xử lý dữ liệu từ máy chấm công là việc làm vô cùng…
Cách nhanh nhất để chuyển đổi từ Android sang iPhone 11 | https://thomaygiat.com
Bạn đã mua cho mình một chiếc iPhone 11 mới lạ vừa ra mắt, hoặc có thể bạn đã vung tiền và có một chiếc…
Giải pháp bảo mật thông tin trong các hệ cơ sở dữ liệu phổ biến hiện nay
Hiện nay, với sự phát triển mạnh mẽ của công nghệ 4.0 trong đó có internet và các thiết bị công nghệ số. Với các…
4 điều bạn cần lưu ý khi sao lưu dữ liệu trên máy tính
08/10/2020những chú ý khi tiến hành sao lưu dữ liệu trên máy tính trong bài viết dưới đây của máy tính An Phát để bạn…