Access数据库不会从VB.NET更新

时间:2013-08-07 08:59:00

标签: .net ms-access datagridview connection

有人可以帮我弄清楚如何让VB.NET更新其连接的MS ACCESS数据库吗?

MS Access 2013 Visual Studio 2012(Framework 4.0)

问题:点击“保存”按钮后,我的DataGrid不会更新其源MS Access数据库。它只是

基本上,我只是以标准方式设置连接。这是一个非常通用的&我失败的结构的基本版本。

Imports System.Data.OleDb

Public Class Form1

Private Sub StudentBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles StudentBindingNavigatorSaveItem.Click
    Me.Validate()
    Me.StudentBindingSource.EndEdit()
    Me.TableAdapterManager.UpdateAll(Me.TestdbDataSet)

End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'TODO: This line of code loads data into the 'TestdbDataSet.Student' table. You can move, or remove it, as needed.
    Me.StudentTableAdapter.Fill(Me.TestdbDataSet.Student)

End Sub

End Class

这只是设置向导中的系统生成代码。过去8个小时我一直试图解决这个看似良性的问题。我刚刚疲惫不堪。

4 个答案:

答案 0 :(得分:0)

社区,

经过一些额外的研究和大量的试验&错误,我已经想出如何让vb.NET更新其MS ACCESS数据库。基本上,您需要更改导入数据库的一个属性,并更改导入数据集的更新命令。以下是这些步骤的完整演练。

►MSAccess2013
►VisualStudio2012
►.NETFramework4.5

(为获得最佳效果,请谨慎使用每一步。)

步骤1:创建示例MS Access数据库

  • 表名:**“表A”
  • 字段1:“ID”| [自动编号产品密钥]
  • 第2场:“标题”| “样品A”,“样品B”,......“样品G”
  • 第3场:“Val”| “a”,“b”,......,“g”
  • 另存为:“SampleAccessDatabase.mdb”
  • 关闭:关闭MS Access

第2步:打开Visual Studio 2012项目

  • 新项目:模板►VisualBasic►“Windows窗体应用程序”

第3步:连接到MS Access数据库

  • 添加新数据源►数据库[下一步>]►数据库[下一步>]►新建连接
  • 添加连接窗口:数据源►“Microsoft Access数据库文件(OLE DB)”
  • 添加连接窗口:数据库文件名►浏览►抓取“SampleAccessDatabase.mdb”文件►[点击确定]
  • 添加连接窗口:[点击确定]►[下一步>]►[点击是]►[下一步>]
  • 选择数据库对象:选择“表A”►完成

第4步:放置控制对象

  • 数据来源:抓取“表A”并将其放在“Form1”对象

第5步:更改数据集属性

  • Solution Explorer:选择“SampleAccessDatabase.mdb”
  • 属性:选择“复制到输出目录”►更改为“如果更新则复制”

第6步:更改TableAdapter更新命令

  • Solution Explorer:双击“SampleAccessDatabaseDataset.xsd”
  • 窗格:在中间窗格中选择“Table ATableAdapter”对象
  • 属性:单击下拉菜单并选择[新建]
  • ,展开[更新命令]
  • 更新命令:单击省略号[...]
  • 打开[CommandText]
  • 添加表格:选择“表格A”并点击[添加]
  • 查询构建器:在单词 SET 后输入“Field2 =?”。按Enter键
  • 查询构建器:在单词“WHERE”后输入“(字段1 =?”。[点击确定]

第7步:测试

  • CTRL + F5:将“Field2”更改为“1”,“2”,......“7”►关闭表格/申请
  • CTRL + F5:查看更新的DataGrid

就是这样。现在,您可以在Visual Studio 2012中创建.NET桌面应用程序,并具有存储和存储功能。更新MS Access数据库中的数据(2013)。

答案 1 :(得分:0)

如果您使用visual studio上的开始按钮启动应用程序,它会将新数据库复制到您的应用程序文件(存储在“/debug/youraplication.exe”中)。 尝试直接执行调试文件夹中的youraplication.exe,然后尝试使用您的应用程序插入/删除/更新您的数据库,并关闭您的应用程序,现在打开存储在文件夹调试中的databasae.accdb,现在您可以看到您的数据库包含您的输入

答案 2 :(得分:0)

我仍然遇到这个问题而无法预料到" Force"你做的更新。 到目前为止,似乎我拥有的每个数据集都至少有一个我以编程方式填充的字段,并且没有相关的控件,用户可以在表单上编辑该字段,数据集不允许更新/删除,只有新的和插入。 我可能会走错路。

答案 3 :(得分:0)

这解决了问题:

第5步:更改DataSet属性

Solution Explorer:选择“SampleAccessDatabase.mdb” 属性:选择“复制到输出目录”►更改为“如果更新则复制”

我的问题是应用程序总是将新数据库复制到app的调试文件夹...