2016-09-29 72 views
-4

嗨,我有一個關於如何更新我的訪問數據庫中的數據在我的vb.net的代碼,但是當我嘗試它我得到錯誤,這是我的代碼。和我的應用程序界面。如何更新我的訪問數據庫

Private Sub Update_Record_Click(sender As Object, e As EventArgs) Handles Update_Record.Click 
    Me.Validate() 
    Me.EmployeeRegistrationBindingSource.EndEdit() 
    Me.EmployeeRegistrationTableAdapter.Update(Me.PayrollManagerDBDataSet) 
    TableAdapterManager.UpdateAll(Me.PayrollManagerDBDataSet) 
End Sub 

enter image description here

+1

嗨。什麼是錯誤信息? – derloopkat

+0

System.Data.dll中發生未處理的「System.Data.OleDb.OleDbException」類型異常 附加信息:UPDATE或DELETE查詢不能包含多值字段。這是錯誤 –

回答

1

該錯誤信息表明您的表列的一個是類型Attachment。不幸的是,ADO.NET不支持Attachment列。您可以通過一些jiggery-pokery檢索數據,但根據我所能確定的,保存數據是不可能的。如果您搜索網頁,您會發現一些解決方案,用於將數據保存到使用DAO的Attachment列。

+0

所以請你建議我做什麼 –

+1

這就好像人們有時只是把他們的大腦放在中立位置。我說ADO.NET不支持'Attachment'列。顯然你不能使用'Attachment'列,或者你不能使用ADO.NET,至少可以使用該列。如果你想繼續使用'Attachment'列,那麼你必須像我之前說的那樣使用DAO。 – jmcilhinney

+0

@jmcilhinney:是的,但你建議他們做什麼? – onedaywhen

0

訪問數據庫引擎的OLE DB提供程序由SQL Server團隊「擁有」,因爲它們的任務是使Access與SQL Server一起工作,並使Jet(.mdb)像SQL Server一樣工作。由於他們的失敗 - 或者市場/社區拒絕了--他們的努力,Access團隊採用了代碼庫的「私人副本」,並以Access數據庫引擎的.accdb版本走自己的路。所以,當他們向.accdb添加新的數據類型時,他們可以自由地將它們添加到ACEDAO,但他們無法更改OLE DB提供程序,因爲它們不擁有它(並且可能無法證明這麼做是正確的,因爲Access社區拒絕了ADO經典年前)。這就是爲什麼你不能使用OLE DB以編程方式修改Attachment數據,唯一現實的選擇是使用ACEDAO。

相關問題