我的代码说没有给出一个或多个必需参数的值

时间:2014-10-16 07:30:06

标签: sql vb.net ms-access-2010

NonDim DC As New OleDb.OleDbConnection("Provider=Microsoft.ace.OLEDB.12.0;Data Source=C:\VPMDB.accdb")
        DC.Open()
        Dim sSql As String = "UPDATE [MEMBERS] SET [SURNAME] = ?,[ADRRESS] =? WHERE MID =?"
        Dim save As New OleDbCommand(sSql, DC)
        save.CommandText = sSql
        save.Parameters.AddWithValue("?", txtSName.Text)
        save.Parameters.AddWithValue("?", txtAdd.Text)
        save.Parameters.AddWithValue("?", txtID.Text)
        save.ExecuteRNonQuery()


        MessageBox.Show("Record succesfully updated" + txtID.Text)

行上的错误点

    save.ExecuteNonQuery()

我正在尝试使用表txtID.text

中的Members(文本框)更新与ID匹配的记录

1 个答案:

答案 0 :(得分:0)

您需要验证两件事;

  1. 您的语法传递
  2. 作为参数传递的值(可能为空)
  3. 对于第一个示例,读取您的查询行,我可以看到ADDRESS被写为ADRRESS,您需要确认它是否与您的列名相对应。

    其次,为了安全起见,请确认传递的值,如下例所示;

        If not String.IsNullOrEmpty(txtSName.Text) Then
          save.Parameters.AddWithValue("?", txtSName.Text)
        Else
          save.Parameters.AddWithValue("?", DbNull.Value)
        End if