简体   繁体   English

使用C#中的datagridview和navigator绑定删除和更新ms Access数据库

[英]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. 嗨,我正在忙一个项目,我正在尝试将数据从我的datagridview更新和删除到y访问数据库中。 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. 它确实会在datagridview中将其删除,但不会将更改保存到数据库中,因此永远不会在实际数据库中进行更新或删除。 thanks for your help. 谢谢你的帮助。 Here is y code: 这是y代码:

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. 并且更新Db需要同样的事情。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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