简体   繁体   中英

Delete and Update ms access database using a datagridview and navigator binding in c#

Hi i'm busy doing a project i'm trying to update and delete the data into y access database from my datagridview. it does delete it in the datagridview but it does not go save the change in the database thus never update or delete in the real database. thanks for your help. Here is y code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Church_Network
{
    public partial class Form11 : Form
    {
    OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\ELPARAISO\Desktop\icons\Church Network1\Church Network1\Church Network\Project.accdb");
    OleDbDataAdapter ad = new OleDbDataAdapter();
    DataSet ProjectDataSet3 = new DataSet();

    public Form11()
    {
        InitializeComponent();
    }

    private void button3_Click(object sender, EventArgs e)
    {
        saveToolStripButton.PerformClick();

        MessageBox.Show("updated");
    }

    private void button5_Click(object sender, EventArgs e)
    {
        try
        {
            ad.SelectCommand = new OleDbCommand("select* from Member ", con);
            ProjectDataSet3.Clear();
            ad.Fill(ProjectDataSet3);
            dataGridView1.DataSource = ProjectDataSet3.Tables[0];

           con.Open();
           ad.SelectCommand.ExecuteNonQuery();
            con.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

    private void Form11_Load(object sender, EventArgs e)
    {
        // TODO: This line of code loads data into the 'projectDataSet3.Member' table. You can move, or remove it, as needed.
        this.memberTableAdapter.Fill(this.projectDataSet3.Member);
    }

    private void button6_Click(object sender, EventArgs e)
    {
        Form8 f8 = new Form8();
        f8.Show();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        bindingNavigatorDeleteItem.PerformClick();

        MessageBox.Show("deleted");

    }

    private void button1_Click(object sender, EventArgs e)
    {

    }
}

}

You have to add commands for deleting and updating your Database. I can't see something like this in your code.

So try to add something like:

private void BtnDelete_Click(object sender, RoutedEventArgs e)
{
   DataRowView drv = (DataRowView)dataGridView1.SelectedItem;
   int id = drv.Row[0];
   if(drv != null)
   {
       delete(id);
   }
}

public void delete(int id)
{ 
   try 
   {
      con.Open();
      OleDbCommand comm = new OleDbCommand("delete from Member where id=@id", con);
      comm.Parameters.AddWithValue("@id", id);
      comm.ExecuteNonQuery();
   }
   catch(OleDbException ex)
   {
       MessageBox.Show("DataConnection not found!", ex);
   }
   finally
   {
       con.Close();
   }

And the same thing would be needed for updating the Db.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM