“异常已被调用的目标抛出。在vs 2010中

时间:2020-11-05 12:35:39

标签: 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

1 个答案:

答案 0 :(得分:0)

这样编写您的SQL代码:

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

,然后添加如下所示的参数:

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

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

在使用ACE OLE DB提供程序时,实际上会忽略参数名称,但是为了使代码清晰起见,应该使用它们。您必须确保以与出现在SQL代码中相同的顺序添加参数。