使用C#对access数据库进行更新,数据库更新不了!

hufanrong12345 2017-11-22 10:04:56

string strConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=data.accdb";
OleDbConnection objConnection = new OleDbConnection(strConnection);
string sql = "select * from sk";
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, strConnection);
OleDbCommandBuilder bld = new OleDbCommandBuilder(adapter);
adapter.UpdateCommand = bld.GetUpdateCommand();
DataTable dt = new DataTable();
adapter.Fill(dt);
dt.Rows[i].Delete();
dt.AcceptChanges();
adapter.Update(dt);
...全文
357 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
FainSheeg 2017-11-22
  • 打赏
  • 举报
回复
dt.AcceptChanges(); 去掉试试
  • 打赏
  • 举报
回复
SqlDataAdapter.DeleteCommand 用这个试试?
DENQH 2017-11-22
  • 打赏
  • 举报
回复
DataTable dt = new DataTable(); adapter.Fill(dt); dt.Rows[i].Delete(); dt.AcceptChanges(); adapter.Update(dt); dt就一个空表,你更新什么?,删除什么?改变什么?
FainSheeg 2017-11-22
  • 打赏
  • 举报
回复
commandbuilder的必要设置。我们写SQL的时候一般会用''或者[]把表名或字段名括起来,以避免歧义。这里就是设置这个用的。
hufanrong12345 2017-11-22
  • 打赏
  • 举报
回复
引用 3 楼 yangliu0512 的回复:
bld.QuotePrefix = "["; bld.QuoteSuffix = "]"; 加上这两句试试
这两句是什么意思?加上去就可以删除了,大神能解释一下吗?
FainSheeg 2017-11-22
  • 打赏
  • 举报
回复
bld.QuotePrefix = "["; bld.QuoteSuffix = "]"; 加上这两句试试

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧