2016-10-20 4 views
0

ログインとデータを挿入してINSERT INTOを使用してデータベースを更新するコードがあります。エラーメッセージを表示するように設定していますが、いずれかを取得するが、それらのいずれも来ていないと私はアクセスファイルをチェックするときに何も追加されていません。SQL INSERT INTOはエラーメッセージなしでAccess DBに挿入しません

Private Sub AddLog() 
    Access.AddParams("@em1", em1) 
    Access.AddParams("@em2", em2) 
    Access.AddParams("@em3", em3) 
    Access.AddParams("@em4", em4) 
    Access.AddParams("@em5", em5) 
    Access.AddParams("@sit1", sit1) 
    Access.AddParams("@sit2", sit2) 
    Access.AddParams("@sit3", sit3) 
    Access.AddParams("@phys1", phys1) 
    Access.AddParams("@phys2", phys2) 
    Access.AddParams("@phys3", phys3) 
    Access.AddParams("@phys4", phys4) 
    Access.AddParams("@phys5", phys5) 
    Access.AddParams("@note", note) 

    Access.ExecQuery("INSERT INTO EmotionLoginDB (emotion1, emotion2, emotion3, emotion4, emotion5, situation1, situation2, situation3, physical1, physical2, physical3, physical4, physical5, notes) " & _ 
        "VALUE (@em1, @em2, @em3, @em4, @em5, @sit1, @sit2, @sit3, @phys1, @phys2, @phys3, @phys4, @phys5, @note); ") 

    If Not String.IsNullOrEmpty(Access.exception) Then 

    End If 
End Sub 

ここにデータベースも設定されています。

Imports System.Data.OleDb 
Public Class DBControl 
Private DBCon As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=StableMe.accdb;") 
Private DBCmd As OleDbCommand 

Public DBDA As OleDbDataAdapter 
Public DBDT As DataTable 
Public params As New List(Of OleDbParameter) 
Public recordCt As Integer 
Public exception As String 

Public Sub ExecQuery(query As String) 
    recordCt = 0 
    exception = "" 

    Try 
     DBCon.Open() 
     DBCmd = New OleDbCommand(query, DBCon) 
     For Each p As OleDbParameter In params 
      DBCmd.Parameters.Add(p) 
     Next 
     params.Clear() 
     DBDT = New DataTable 
     DBDA = New OleDbDataAdapter(DBCmd) 
     recordCt = DBDA.Fill(DBDT) 
    Catch ex As Exception 
     exception = ex.Message 
    End Try 

    If DBCon.State = ConnectionState.Open Then 
     DBCon.Close() 
    End If 
End Sub 

Public Sub AddParams(name As String, value As Object) 
    Dim newParam As New OleDbParameter(name, value) 
    params.Add(newParam) 
End Sub 
End Class 

私はその多くを知っていて、それはおそらく単純なものですが、私はその周りに頭を包むことはできません。

+1

です。「VALUES(...)」ではなく「VALUE(...)」です。 – Siyual

答えて

1

正しい構文はinsert into TABLENAME(COLUMN1,COLUMN2,..) VALUES(..,..)

関連する問題