没有给出一个或多个必需参数的值

时间:2010-03-04 11:17:23

标签: vb.net ms-access

这里有什么问题,即使我之前使用过的代码相同,我总会得到一些令人讨厌的错误。但是当我将它应用到其他形式时,它会给我上面的错误。 这是我的代码:

Imports System.Data.OleDb
Public Class Updater2
    Public adminID As String
    Public adminName As String
    Public adminPass As String

    Private con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb;Jet OLEDB:Database Password=nrew123$%^;")
    Private com As OleDb.OleDbCommand

    Public Sub New()
        con.Open()
        com = New OleDb.OleDbCommand("Select * from admintable")
        com.Connection = con



    End Sub

    Public Sub updates()
        com.CommandText = "UPDATE admintable SET AdminName = '" & adminName & "', AdminPassS = '" & adminPass & "' WHERE ID = '" & adminID & "'"
        com.ExecuteNonQuery()

    End Sub
End Class

这是按钮中的代码,它试图更新数据:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        shikai.adminID = textbox1.text
        shikai.adminName = TextBox4.Text
        shikai.adminPass = TextBox3.Text






        shikai.updates()
        MsgBox("Successfully updated!")
    End Sub

这里可能有什么问题?

4 个答案:

答案 0 :(得分:25)

在开发Access后端时处理 no value given for one or more required parameters 错误的一个好方法是获取CommandText的内容并将其粘贴到虚拟查询中访问自己。然后Access将为您提供一个弹出窗口,用于识别导致问题的字段(通常是错字,如您的情况)。

答案 1 :(得分:12)

此错误的常见原因是缺失或拼写错误。 adminName似乎是Null或零长度字符串。

答案 2 :(得分:2)

当将命令文本粘贴到访问本身并且弹出Access时会告诉您哪个字段是问题,如果看起来不是类型,请尝试将字段名称括在方括号中。 []您的某个列可能包含关键字。这发生在我身上,LL_ID列 - 我必须将其更改为[LL_ID]。

答案 3 :(得分:0)

选择pt.person_name,pt.obile_no,pt.address_info FROM person_table pt左联接company_table ct ON pt.com_id = ct.com_id WHERE pt.com_id = 14

我将其用于访问数据库,然后发生了这种错误“没有为一个或多个必需参数提供值”。

我实际上做了pt.obile之类的拼写错误,但它将是pt.mobile。当我更正后,效果很好。