Добавление записи в базу данных доступа, где ошибка в этом коде? - PullRequest
0 голосов
/ 31 марта 2009

прочитайте много о DataAdapter, DataTable, ... чтобы добраться до этого кода, в кнопке Сохранить:

'insert new row
ds.Tables("Employees").Rows.Add(ENumTxt.Text, ENameTxt.Text, EPosTxt.Text,  
  EAgeTxt.Text, ESalTxt.Text, EPhonTxt.Text, EAdrsTxt.Text)
'save changes
ds.AcceptChanges()
Try
  If ds.HasChanges Then
    Dim AffectedDS As DataSet = ds.GetChanges(DataRowState.Added)
    'im ComBuilder As New OleDb.OleDbCommandBuilder(da)
    da.InsertCommand = ComBuilder.GetInsertCommand
    da.Update(AffectedDS, "Employees")
  End If
Catch e1 As OleDb.OleDbException
  MessageBox.Show(e1.Message)
End Try

=============================================== ================================ Тогда я попробовал это:

Dim cb As New OleDb.OleDbCommandBuilder(da)
' Insert a new record in the DataSet
Dim r As DataRow = ds.Tables("Employees").NewRow()
r("EID") = ENumTxt.Text
r("EName") = ENameTxt.Text
r("Age") = EAgeTxt.Text
r("Salary") = ESalTxt.Text
r("EPhone") = EPhonTxt.Text
r("EAddress") = EAdrsTxt.Text
ds.Tables("Employees").Rows.Add(r)

' Insert the record even in the database
da.Update(ds.Tables("Employees").GetChanges())
' Align in-memory data with the data source ones
ds.AcceptChanges()

==========

Во время выполнения я получаю одно и то же сообщение об ошибке для обоих случаев

"Syntax error in INSERT INTO statement"

Пожалуйста, дайте мне несколько советов, чтобы исправить эту ошибку.

Ответы [ 2 ]

0 голосов
/ 31 марта 2009

Единственное, что приходит на ум, это то, что при использовании Commandbuilder в вашей таблице определен первичный ключ?

0 голосов
/ 31 марта 2009

В вашем операторе INSERT есть ошибка, так как ошибка говорит ...

Как выглядит оператор INSERT, заданный параметром InsertCommand вашего адаптера данных?

...