簡體   English   中英

使用C#中的datagridview和navigator綁定刪除和更新ms Access數據庫

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

嗨,我正在忙一個項目,我正在嘗試將數據從我的datagridview更新和刪除到y訪問數據庫中。 它確實會在datagridview中將其刪除,但不會將更改保存到數據庫中,因此永遠不會在實際數據庫中進行更新或刪除。 謝謝你的幫助。 這是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)
    {

    }
}

}

您必須添加用於刪除和更新數據庫的命令。 我在您的代碼中看不到這樣的內容。

因此,嘗試添加以下內容:

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();
   }

並且更新Db需要同樣的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM