2016-09-29 3 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

Hi. Что такое сообщение об ошибке? – derloopkat

+0

Необработанное исключение типа «System.Data.OleDb.OleDbException» произошло в System.Data.dll Дополнительная информация: запрос UPDATE или DELETE не может содержать многозначное поле. это ошибка –

ответ

1

Это сообщение об ошибке означает, что один из ваших колонок таблицы имеет тип Attachment. К сожалению, ADO.NET не поддерживает колонки Attachment. Вы можете получать данные с небольшим количеством jiggery-pokery, но сохранение данных, насколько я был в состоянии определить, невозможно. При поиске в Интернете вы найдете некоторые решения для сохранения данных в столбцах Attachment, которые используют DAO.

+0

, так что, пожалуйста, что вы предлагаете, я делаю –

+1

Это похоже на то, что иногда люди просто нейтрализуют свой мозг. Я сказал, что ADO.NET не поддерживает колонки «Attachment». Очевидно, вы либо не можете использовать столбцы «Вложения», либо не можете использовать ADO.NET, чтобы работать с этим столбцом как минимум. Если вы хотите использовать колонки 'Attachment', то вам, как я уже сказал, придется использовать DAO. – jmcilhinney

+0

@jmcilhinney: да, но что вы предлагаете? – onedaywhen

0

Поставщик OLE DB для механизма базы данных доступа «принадлежит» командой SQL Server с момента доступа Access 2000, когда им было поручено выполнять работу Access с SQL Server и заставить Jet (.mdb) работать подобно SQL Server. Поскольку они не смогли - или, возможно, рынок/сообщество отклонили - их усилия, команда Access взяла «личную копию» базы кода и пошла своим путем с .accdb версией механизма доступа к базе данных. Поэтому, когда они добавили новые типы данных в .accdb, они были свободны добавлять их в ACEDAO, но они не могли изменить поставщика OLE DB, потому что они не владеют им (и, вероятно, не могли это оправдать, так как сообщество Access отклонено ADO классический лет назад). Вот почему вы не можете использовать OLE DB для программного изменения данных Attachment, и единственным реалистичным вариантом является использование ACEDAO.

Смежные вопросы