2016-09-29 3 views
-4

Hallo zu aktualisieren habe ich einen Code auf, wie die Daten in meiner Access-Datenbank in meinem vb.net zu aktualisieren, aber wann immer ich es versuche ich Fehler bekommen, dies ist mein Code. und meine App-Schnittstelle.Wie meine Access-Datenbank

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

Hallo. Was ist die Fehlermeldung? – derloopkat

+0

Eine nicht behandelte Ausnahme des Typs ‚System.Data.OleDb.OleDbException‘ aufgetreten in System.Data.dll Zusätzliche Informationen: Ein Update oder DELETE-Abfrage kann nicht ein mehrwertiges Feld enthalten. das ist der Fehler –

Antwort

1

Die Fehlermeldung deutet darauf hin, dass einer Ihrer Tabellenspalten gibt Attachment ist. Leider bietet ADO.NET keine Unterstützung für Attachment Spalten. Sie können Daten mit ein bisschen Jiggery-pokery abrufen, aber das Speichern von Daten ist, soweit ich feststellen konnte, unmöglich. Wenn Sie im Internet suchen, finden Sie einige Lösungen zum Speichern von Daten in Attachment Spalten, die DAO verwenden.

+0

also bitte, was schlagen Sie vor, ich tun –

+1

Es ist wie die Leute nur ihr Gehirn in neutralen manchmal. Ich sagte, dass ADO.NET 'Attachment'-Spalten nicht unterstützt. Offensichtlich können Sie entweder keine "Attachment" -Spalten verwenden oder Sie können ADO.NET nicht verwenden, um zumindest mit dieser Spalte zu arbeiten. Wenn Sie weiterhin 'Attachment'-Spalten verwenden möchten, müssen Sie, wie bereits erwähnt, DAO verwenden. – jmcilhinney

+0

@jmcilhinney: ja, aber was schlägst du vor? – onedaywhen

0

Der OLE DB-Provider für die Access Database Engineer 'gehört' dem SQL Server-Team seit ca. Access 2000, als Access mit SQL Server arbeiten und Jet (.mdb) wie SQL Server funktionieren sollte. Weil sie gescheitert - oder vielleicht der Markt/Gemeinde abgelehnt - ihre Bemühungen, nahm das Access-Team eine ‚Privatkopie‘ der Code-Basis und ging ihren eigenen Weg mit der .accdb Version des Access-Datenbank-Engine. Wenn sie also der .accdb neue Datentypen hinzufügten, konnten sie diese zu ACEDAO hinzufügen, aber sie konnten den OLE DB-Provider nicht ändern, weil sie ihn nicht besitzen (und wahrscheinlich auch nicht, weil die Access-Community dies zurückgewiesen hat) ADO Klassiker vor Jahren). Aus diesem Grund können Sie OLE DB nicht verwenden, um Attachment Daten programmgesteuert zu ändern, und die einzige realistische Option ist die Verwendung von ACEDAO.