2017-06-16 85 views
0

我目前正在研究连接到Access数据库的VB程序。我使用查询和数据适配器填充数据表。在程序的后期阶段,我想通过适配器和表格对数据库进行永久更改。我尝试这样做:使用表格适配器和数据表格更新数据库

For Each row As DataRow In db.DBDT.Rows 

      row("fldsentda") = "Y" 
      row("flddasenddate") = Date.Today 
     Next row 


     'db.DBDT.AcceptChanges() 
     db.DBDA.Update(db.DBDT) 

* DB是一个类文件,DBDA是数据适配器,DBDT是数据表

但我意识到这些变化只影响数据表,而不是实际的数据库。我怎样才能得到它只会影响使用查询填充的数据表内的数据库行?

更新:我在想我的更新函数没有写入。我不知道这是否应该是一个单独的问题,但我该如何编写更新函数来更改数据库中已更改的数据库中的字段?

+0

使用DataAdapter将更改发送到数据库 - 'myDA.Update(myDataTable)'当你在那种迷迷糊糊的,你可以存储任何数量的DataTable中的添加/删除/修改,并一次全部更新DB (和经济上)。 – Plutonix

+0

感谢您的评论。是不同于最后一行,“db.DBDA.Update(db.dbdt)”?? – bigboi214

+0

摆脱AcceptChanges'这并不做你认为它 – Plutonix

回答

1

不要叫

db.DBDT.AcceptChanges() 

db.DBDA.Update(db.DBDT) 

否则不会改变,从而标志着该数据表的一切。特别是在备注部分,请参阅here

只需调用Update方法和AcceptChanges的应该自动为您调用。

+0

谢谢。我把那行代码拿出来了。 – bigboi214