私が書いているプログラム(vb.net)は、テキストボックスの値をデータベースに読み込むことになっています。 しかし、「保存」をクリックすると、最初は何も起こりませんでした。エラーなし、通知なし、何もありません。だから私は、ブレークポイントを使用してそれをトレースし、それがになった:構文INSERT INTO文vb.netとアクセスデータベースのエラー
daTraining.Update(dsTraining, "Training")
、ちょうど停止しました。 は、だから私は、try /キャッチに入れ、そして今私は私がこれを解決するか、問題が何であるかどのように困惑している
System.Data.OleDB.OledgException (0x80040E14): Syntax error in INSERT INTO statement.
を取得し保存打ったとき。
コード
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Try
Dim cb As New OleDb.OleDbCommandBuilder(daTraining)
Dim dsNewRow As DataRow
dsNewRow = dsTraining.Tables("Training").NewRow
dsNewRow.Item("ID") = txtTrainingID.Text
dsNewRow.Item("Ranch") = cbRanches.Text
dsNewRow.Item("Location") = txtLocation.Text
dsNewRow.Item("Date") = mtbDate.Text
dsNewRow.Item("StartTime") = mtbStartTime.Text
dsNewRow.Item("FinishTime") = mtbFinishTime.Text
dsNewRow.Item("Crew") = txtCrews.Text
dsNewRow.Item("Supervisor") = txtSupervisor.Text
dsNewRow.Item("Foreperson") = txtForeperson.Text
dsNewRow.Item("Activity") = txtActivity.Text
dsNewRow.Item("Trainer") = txtTrainer.Text
dsNewRow.Item("Topics") = txtTopics.Text
dsTraining.Tables("Training").Rows.Add(dsNewRow)
daTraining.Update(dsTraining, "Training")
MsgBox("Training Recorded")
cb.Dispose()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
'daTraining.InsertCommand.CommandText'にあるクエリを見てください。あなたは何らかの種類のエラーがあることがわかるはずです – FloatingKiwi
[Microsoft Jet 4.0の予約語一覧](https://support.microsoft.com/en-us/kb/321266)。あなたのdataadapterは、コマンドビルダを繰り返し何度も作り直さなくても、すべてのコマンドを保持することができます。 – Plutonix
@Plutonixが示唆するように、保存するたびに新しいコマンドビルダを作成すべきではありません。構築コマンドを作成するデータアダプタを作成した直後に、単一のコマンドビルダを作成します。データ・アダプターのメンバー変数を使用している場合は、コマンド・ビルダーにもメンバー変数を使用します。 – jmcilhinney