"调用的目标已引发异常。与 2010 年相比

  • 本文关键字:2010 异常 调用 目标 vb.net
  • 更新时间 :
  • 英文 :


hi当我试图保存数据以访问2007数据库时,我收到了类似";调用的目标已经抛出异常";我正在制作一个项目,从秤上取重量,并将其保存到数据库中。请帮助我解决错误。

Try
Dim PRO As String
Dim CONNSTRING As String
Dim COMMAND As String
Dim MYCONNECTION As OleDbConnection = New OleDbConnection
PRO = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|weight.accdb;Persist Security Info=True;Jet OLEDB:Database Password=weight"
CONNSTRING = PRO
MYCONNECTION.ConnectionString = CONNSTRING
MYCONNECTION.Open()
COMMAND = "insert into entry ([weight1],[date1],[time1],[weight2],[date2],[time2],[netweight],[vehicleno],[name],[contactno],[productname],[charge],[paymentstatus]) values ('" & weight1.Text & "','" & date1.Text & "','" & time1.Text & "','" & weight2.Text & "','" & date2.Text & "','" & time2.Text & "','" & netweight.Text & "','" & vehicleno.Text & "','" & custname.Text & "','" & contact.Text & "','" & Product.Text & "','" & charge.Text & "','" & status.Text & "')"
Dim cmd As OleDbCommand = New OleDbCommand(COMMAND, MYCONNECTION)
cmd.Parameters.Add(New OleDbParameter("weight1", CType(weight1.Text, String)))
cmd.Parameters.Add(New OleDbParameter("date1", CType(date1.Text, String)))
cmd.Parameters.Add(New OleDbParameter("time1", CType(time1.Text, String)))
cmd.Parameters.Add(New OleDbParameter("weight2", CType(weight2.Text, String)))
cmd.Parameters.Add(New OleDbParameter("date2", CType(date2.Text, String)))
cmd.Parameters.Add(New OleDbParameter("time2", CType(time2.Text, String)))
cmd.Parameters.Add(New OleDbParameter("netweight", CType(netweight.Text, String)))
cmd.Parameters.Add(New OleDbParameter("vehicleno", CType(vehicleno.Text, String)))
cmd.Parameters.Add(New OleDbParameter("name", CType(custname.Text, String)))
cmd.Parameters.Add(New OleDbParameter("contactno", CType(contact.Text, String)))
cmd.Parameters.Add(New OleDbParameter("productname", CType(Product.Text, String)))
cmd.Parameters.Add(New OleDbParameter("charge", CType(charge.Text, String)))
cmd.Parameters.Add(New OleDbParameter("paymentstatus", CType(status.Text, String)))
MsgBox("Saved")
cmd.ExecuteNonQuery()
cmd.Dispose()
MYCONNECTION.Close()
weight1.Clear()
date1.Text = ""
time1.Text = ""
weight2.Clear()
date2.Text = ""
time2.Text = ""
netweight.Clear()
vehicleno.Text = ""
custname.Text = ""
contact.Text = ""
Product.Text = ""
charge.Clear()
status.Text = ""
weighttype.Focus()
Call ticket()


Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

这样编写SQL代码:

COMMAND = "insert into entry ([weight1]) values (@weight1)"

然后添加这样的参数:

cmd.Parameters.Add("@weight1", OleDbType.VarChar, 50).Value = weight1.Text

在SQL中提供一个参数占位符,然后在添加参数时将其用作参数的名称。同时指定数据类型,对于可变宽度类型,还指定大小。设置Value或您刚刚添加的参数。

当您使用ACE OLE DB访问接口时,参数名称实际上会被忽略,但为了代码的清晰性,您应该使用它们。必须确保参数的添加顺序与它们在SQL代码中的显示顺序相同。

最新更新