这是我的 btnUpdate 代码,以便 msAccess 进行更新。
private void btnUpdate_Click(object sender, EventArgs e)
{
string CoString=(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=H:\AccessDatabase.accdb");
OleDbConnection con = new OleDbConnection(CoString);
string Update ="Select * from StudentDb";
DataSet ds = new DataSet();
DataSet changes;
OleDbCommandBuilder cbuild = new OleDbCommandBuilder();
try
{
con.Open();
OleDbDataAdapter da = new OleDbDataAdapter(Update, con);
da.Fill(ds);
cbuild = new OleDbCommandBuilder(da);
changes = ds.GetChanges();
if (changes != null)
{
da.Update(ds.Tables[0]);
}
ds.AcceptChanges();
MessageBox.Show("Save changes");
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
我没有任何错误,但是当我单击保存并加载 msAccess 数据库时,它会恢复到原始状态,在 msAccess 中根本不会更新,但在 c# 上的 datagridview 上它会成功更新,我的代码可能有什么问题?
您似乎根本没有从 datagridview 检索任何数据。您正在将 Access 数据库中的 StudentDB 表中的所有内容检索到 DataSet ds 中。然后,您在 ds 上调用 GetChanges() 并将其保存到另一个名为“changes”的数据集中。由于 ds 的内容直接来自 Access 数据库,因此无需保存任何更改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)