2009-03-31 1 views
0

много читал о DataAdapter, DataTable .., чтобы добраться до этого кода, в Save Button:Добавление записи в базу данных доступа, где ошибка в этом коде?

'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" 

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

+0

Пожалуйста, переформатируйте свой код и устраните проблему. Помогите нам помочь вам :) –

ответ

0

Ther ошибка в вашем INSERT заявление, как говорит ошибка ...

Каким INSERT заявление, которое было указано в «» InsertCommand вашего DataAdapter выглядеть?

+0

Я думал об этом, но я не мог дотянуться до него, как я могу проверить инструкцию INSERT? – mozon

0

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

+0

Да, EID является основным ключом. – mozon