语法错误向vb.net的INSERT查询添加额外字段

时间:2017-08-24 11:35:20

标签: vb.net visual-studio

早上好。当操作员更换大型生产机器中的工具时,他会进入PC并填写我创建的程序的信息。好吧,我想在实际记录变更时加上时间戳,当他们说他们改变了工具时。该计划已经生产了几个月,所以这是一个新的补充。我创建了一个隐藏的文本框,当按下Submit时,它会生成一个当前时间戳,并且应该使用此Query进入数据库:

text_timestamp.Clear()
text_timestamp.Text = DateTime.Now
str = "Insert Into Log
(machine_num,change_date,change_time,timestamp,clock_num,toolnum,tool_description,cycle_num,meet_expected,change_reason,comments,inspected_by) values 
(@d1,@d2,@d3,@d4,@d5,@d6,@d7,@d8,@d9,@d10,@d11,@d12)"
        Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
        cmd.Parameters.Add(New OleDbParameter("@d1", combo_machine.Text))
        cmd.Parameters.Add(New OleDbParameter("@d2", text_changedate.Value.ToShortDateString))
        cmd.Parameters.Add(New OleDbParameter("@d3", combo_changetime.Text))
        cmd.Parameters.Add(New OleDbParameter("@d4", text_timestamp.Text))
        cmd.Parameters.Add(New OleDbParameter("@d5", text_clocknum.Text))
        cmd.Parameters.Add(New OleDbParameter("@d6", combo_toolnum.Text))
        cmd.Parameters.Add(New OleDbParameter("@d7", text_description.Text))
        cmd.Parameters.Add(New OleDbParameter("@d8", text_cyclenum.Text))
        cmd.Parameters.Add(New OleDbParameter("@d9", Meet))
        cmd.Parameters.Add(New OleDbParameter("@d10", Reason))
        cmd.Parameters.Add(New OleDbParameter("@d11", text_comments.Text))
        cmd.Parameters.Add(New OleDbParameter("@d12", text_signedoffby.Text))
        cmd.ExecuteNonQuery()
        myConnection.Close()
        MsgBox("Submitted")

所以我更改了我的数据适配器并确保所有列都正确显示,并且在最后一次说明INSERT INTO行中存在语法错误时出错。它似乎只是寻找11行而不是12行,因为如果我删除一行,无论哪一行,它都有效,我在我的访问数据库中看到它。有谁告诉我,我可能做错了什么?

数据集:

image

和工作室中的错误:

image

异常详细信息:

System.Data.OleDb.OleDbException occurred
HResult=0x80040E14
Message=Syntax error in INSERT INTO statement.
Source=Microsoft Office Access Database Engine
StackTrace:
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at WindowsApp3.Form1.submit_button_click(Object sender, EventArgs e) in C:\Users\userme\Documents\Visual Studio 2017\Projects\WindowsApp3 - Copy\WindowsApp3\Form1.vb:line 134
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
at WindowsApp3.My.MyApplication.Main(String[] Args) in :line 81

0 个答案:

没有答案