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。
答案 0 :(得分:0)
你的添加参数值在哪里?
你可以试试这个
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的非法值,因此必须这样
[身高],[体重],....你可以尝试在你身上查看数据集>配置>选择声明>插入,您将看到非法值。 就像我的POSITION字段一样,这是非法的,所以必须包含“[]”
答案 1 :(得分:0)
如果数据类型与数字类似,则不能使用“'”。如果我正确地解释它,你的一些字段就是数字。
con.Open()
cmd.CommandText = "Insert Into tblEmp (someInt, someString) VALUES (12, 'asdf')"
cmd.ExecuteNonQuery()
con.Close()
除此之外,如果你再次运行Query,你应该在Acces中得到相同的错误。使用调试器并在“cmd.ExecuteNonQuery()”处添加一个断点,以获取包含所有“'”的已完成查询命令字符串。