Windows Forms: Insert Update Delete data in Database from DataGridView in C#
By FoxLearn 7/25/2017 9:08:05 PM 13.26K
How to Insert update delete data from datagridview in c# using sql database, Metro Framework, Modern UI
Step 1: Click New Project, then select Visual C# on the left, then Windows and then select Windows Forms Application. Name your project "MetroUI" and then click OK
Step 2: Right click on your project select Manage NuGet Packages -> Search metro framework -> Install
Step 3: Design your form as below
Form1
frmAddEditStudent
Step 4: Create a City, Student table, then add to your Entity Framework Model as below
Step 5: Add code to handle your winform as below
Form1
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace MetroUI { public partial class Form1 : MetroFramework.Forms.MetroForm { public Form1() { InitializeComponent(); } private async void mtAdd_Click(object sender, EventArgs e) { //Add new student to binding source using(frmAddEditStudent frm=new frmAddEditStudent(new Student() { Gender = false })) { if (frm.ShowDialog() == DialogResult.OK) { try { studentBindingSource.Add(frm.StudentInfo); db.Students.Add(frm.StudentInfo); await db.SaveChangesAsync(); dataGridView.Refresh(); } catch(Exception ex) { MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } private void mtRefresh_Click(object sender, EventArgs e) { //Reload data Cursor.Current = Cursors.WaitCursor; studentBindingSource.DataSource = db.Students.ToList(); cityBindingSource.DataSource = db.Cities.ToList(); Cursor.Current = Cursors.Default; } DbEntities db; private void Form1_Load(object sender, EventArgs e) { //Init data db = new DbEntities(); studentBindingSource.DataSource = db.Students.ToList(); cityBindingSource.DataSource = db.Cities.ToList(); } private async void mtEdit_Click(object sender, EventArgs e) { Student obj = studentBindingSource.Current as Student; if (obj != null) { using(frmAddEditStudent frm = new frmAddEditStudent(obj)) { if (frm.ShowDialog() == DialogResult.OK) { try { //End edit & save data to sql database studentBindingSource.EndEdit(); await db.SaveChangesAsync(); } catch(Exception ex) { MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } private async void mtDelete_Click(object sender, EventArgs e) { //Delete data from binding source, then save to sql database if(MessageBox.Show("Are you sure want to delete this record?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { int rows = dataGridView.RowCount; for(int i = rows - 1; i >= 0; i--) { if (dataGridView.Rows[i].Selected) { db.Students.Remove(dataGridView.Rows[i].DataBoundItem as Student); studentBindingSource.RemoveAt(dataGridView.Rows[i].Index); await db.SaveChangesAsync(); } } } } private async void mtSave_Click(object sender, EventArgs e) { try { if(MessageBox.Show("Do you want to save the changes?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { //End edit data & save studentBindingSource.EndEdit(); await db.SaveChangesAsync(); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
frmAddEditStudent
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace MetroUI { public partial class frmAddEditStudent : MetroFramework.Forms.MetroForm { //Init data public frmAddEditStudent(Student obj) { InitializeComponent(); bindingSourceStudent.DataSource = obj; if (chkGender.CheckState == CheckState.Checked) chkGender.Text = "Male"; else if (chkGender.CheckState == CheckState.Unchecked) chkGender.Text = "Female"; else chkGender.Text = "???"; } //Get current student public Student StudentInfo { get { return bindingSourceStudent.Current as Student; } } private void btnSave_Click(object sender, EventArgs e) { bindingSourceStudent.EndEdit(); DialogResult = DialogResult.OK; } private void frmAddEditStudent_Load(object sender, EventArgs e) { cboCity.DisplayMember = "CityName"; cboCity.ValueMember = "CityId"; using(DbEntities db = new DbEntities()) { cboCity.DataSource = db.Cities.ToList(); } } private void chkGender_CheckStateChanged(object sender, EventArgs e) { if (chkGender.CheckState == CheckState.Checked) chkGender.Text = "Male"; else if (chkGender.CheckState == CheckState.Unchecked) chkGender.Text = "Female"; else chkGender.Text = "???"; } } }
VIDEO TUTORIALS
- Insert Update Delete and View data from SQL Database using ORM Lite in C#
- How to Insert Update Delete Search Records in C#
- How to Insert Update Delete From Database in VB.NET
- How to Insert Update Delete and View data from SQL Database in C# using ADO.NET
- How to Insert Update Delete View data from SQL Database in C#
- Windows Forms: Insert Update Delete Search data from local database in C#
- Windows Forms: Insert Update Delete View data in SQL Server using 3 Tiers in C#
- Windows Forms: Insert Update Delete Select in SQL Server in C#
Categories
Popular Posts
Flat Able Admin Dashboard Template
11/18/2024
Regal Admin Dashboard Template
11/18/2024
Plus Admin Dashboard Template
11/18/2024
Admin Tailwind CSS Admin Dashboard Template
11/18/2024