0

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"

このエラーを修正するためのガイドラインを教えてください。

4

2 に答える 2

0

エラーが示すように、INSERTステートメントにエラーがあります...

DataAdapter の「InsertCommand」で指定された INSERT ステートメントはどのようになりますか?

于 2009-03-31T09:06:21.570 に答える
0

頭に浮かぶ唯一のことは、Commandbuilder を使用している場合、テーブルに主キーが定義されているかということです。

于 2009-03-31T09:08:16.277 に答える