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

问题描述:

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

的MS Access 2013 的Visual Studio 2012(框架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个小时我一直试图解决这个看似温和的问题。我只是疲惫不堪。

+0

迂腐笔记:这个问题与VB.NET无关。这就是您用来调用.NET组件的编程语言,如System.Data.OleDb。 –

社区,

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

►MS进入2013
►Visual工作室2012
►.NET框架4.5

(为了获得最佳效果,请执行每一步故意)。

步骤1:创建采样MS Access数据库

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

第2步:打开Visual Studio 2012项目

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

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

  • 添加新数据源►数据库[下一页>]►数据库[下一页>]►新建连接
  • 添加连接窗口:数据源► “Microsoft Access数据库文件(OLE DB)”
  • 添加连接窗口:数据库文件名►浏览►抓取“SampleAccessDatabase。MDB”文件►[点击OK]
  • 添加连接窗口:点击OK]►[下一页>]►哈工大是]►[下一页>]
  • 选择数据库对象:选择 “表A” ►完成

步骤4:将控制对象

  • 数据源:抓住 “表A” 并将其放置在 “Form1的” 对象上

第5步:更改数据集属性

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

第6步:改变的TableAdapter更新命令

  • Solution Explorer中:双击“SampleAccessDatabaseDataset.xsd”
  • 窗格:选择中间窗格中的“表ATableAdapter”对象
  • 属性:展开[更新命令]点击下拉菜单,然后选择[新]
  • 更新命令:打开[CommandText中]点击省略号[...]
  • 添加表:选择 “表A” 和命中[添加]
  • 查询生成器:字SET类型后“字段2 = ?”。点击进入
  • 查询生成器:这个词后“WHERE”“?(字段1 =”哈工大OK]

第7步:测试一下

  • CTRL + F5:将“Field2”更改为“1”,“2”,...“7”►关闭窗体/应用程序
  • CTRL + F5:查看更新的DataGrid

这就是它。现在,您可以从您的MS Access数据库(2013)存储&更新数据的能力,创建在Visual Studio 2012的.NET桌面应用程序。

+0

-1。我通常喜欢自我回答,但你的回答并不显示问题所在。 –

+0

**“经过一些额外的...,我已经想出了如何让VB.NET来更新它​​的MS Access数据库。”**你说我的自我回答没有定义它正在解决的问题。第一句话没有说明吗?那么,我会采取任何建议。根据谷歌的结果,其他几个人有这个问题,我想这个职位可以作为他们的助手。 **这就对了。现在,您可以在Visual Studio 2012中创建.NET桌面应用程序,并可以存储和更新MS Access数据库(2013)中的数据。“** – Elias

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

我有这个问题仍然并不能弄明白希望“强制”更新为你做。 到目前为止,似乎每个数据集都具有至少一个我以编程方式填充的字段,并且没有关联的控件,用户可以在窗体上编辑该字段,数据集不允许更新/删除,只允许新增和插入。 虽然我可能走错了路。

此问题解决了:

第5步:更改数据集属性

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

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