0
con.Open()
            cmd.CommandText = "Insert Into tblEmp (FN,MN,LN,PAddHN,PAddSB,PAddMun,VPA,BD,BP,Tel,Rel,Cit,Height,Weight,Gend,SN,SOcc,NoC,AgeC,Stat,DS,FaN,FaOcc,MaN,MaOcc,PAdd,PTCN,PTCP,SSS,TIN,PHILH,PAGIBIG,CPNo,Sued,Age,BankAcc,empRfID,Principal,Department,Position,DRate,empID,OffT) Values('" & zfn & "','" & zmn & "','" & zln & "','" & zpaddhn & "','" & zpaddsb & "','" & zpaddmun & "','" & zvpa & "','" & zbd & "','" & zbp & "','" & ztel & "','" & zrel & "','" & zcit & "','" & zheight & "','" & zweight & "','" & zgend & "','" & zsn & "','" & zsocc & "','" & znoc & "','" & zagec & "','" & zstat & "','" & zds & "','" & zfan & "','" & zfaocc & "','" & zman & "','" & zmaocc & "','" & zpadd & "','" & zptcn & "','" & zptcp & "','" & zsss & "','" & ztin & "','" & zphilh & "','" & zpagibig & "','" & zcpno & "','" & zsued & "','" & zage & "','" & txtBankAcc.Text & "','" & zempRefID & "','" & cmbPrin.SelectedItem & "','" & cmbDept.SelectedItem & "','" & txtPos.Text & "','" & txtDRate.Text & "','" & empID & "','" & zOffTime & "')"
            cmd.ExecuteNonQuery()
            con.Close()

在我的程序中运行它时出现错误。但是当我将命令粘贴到我的 ms 访问查询中并且它运行成功时。我的代码有什么问题吗?请帮助tnx。

4

2 回答 2

0

你的 add 参数值在哪里?

你可以试试这个

 Try
                    con = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Dir\DB.accdb")
                    Dim command As String
                    command = "INSERT INTO Table (NOTIF, EMP_NO, EMP_NAME, [POSITION]) VALUES (@NOTIF, @EMP_NO, @EMP_NAME, @POSITION)"
                    con.Open()
                    Dim cmd As OleDbCommand
                    cmd = New OleDbCommand(command, con)
                    cmd.Parameters.AddWithValue("@NOTIF", NOTIFTextBox.Text)
                    cmd.Parameters.AddWithValue("@EMP_NO", EMP_NOTextBox.Text)
                    cmd.Parameters.AddWithValue("@EMP_NAME", EMP_NAMETextBox.Text)
                    cmd.Parameters.AddWithValue("@POSITION", POSITIONTextBox.Text)

                    cmd.ExecuteNonQuery()
                Catch exceptionObject As Exception
                    MessageBox.Show(exceptionObject.Message)
                Finally
                    con.Close()
                End Try

这个代码我以前用过,它工作得很好

此外,您的字段名称看起来包含对 VB.net 的非法值,所以必须像这样

[Height],[Weight],.... 您可以尝试在 DATASET > Configure > Select Statement > Insert 中检查它,您会看到非法值。就像我的 POSITION 字段一样,它是非法的,所以必须包含“[]”

于 2013-03-14T08:33:33.710 回答
0

如果数据类型类似于数字,则不能使用“'”。如果我解释正确,您的某些字段是数字。

con.Open()
cmd.CommandText = "Insert Into tblEmp (someInt, someString) VALUES (12, 'asdf')"
cmd.ExecuteNonQuery()
con.Close()

除此之外,如果再次运行 Query,您应该在 Acces 中得到相同的错误。使用调试器并在“cmd.ExecuteNonQuery()”处添加断点,以获取包含所有“'”的已完成查询命令字符串。

于 2013-03-14T09:00:26.760 回答