[英]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.