更新表时出现"Data type mismatch in criteria expression"错误


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim con As New OleDb.OleDbConnection
    Dim str As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=..VisitorPass.accdb"
    Dim sql As String
    sql = "Update Visitor set [password]='" & txtPassword.Text & "',FirstName='" & txtFirstName.Text & "',LastName='" & txtLastName.Text & "',Gender='" & txtGender.Text & "',MobileNo='" & txtMobileNO.Text & "',DateOfBirth='" & txtDateOfBirth.Text & "',VisitorAddress='" & txtVisitorAddress.Text & "'where ID='" & lblID2.Text & "'"
    con = New OleDbConnection(str)
    Dim cmd As New OleDbCommand(sql, con)
    con.Open()
    cmd.ExecuteNonQuery()
    Dim obj1 As New VisitorProfile
    obj1.StringPass = txtName.Text
    MsgBox("profile is updated")
    obj1.Show()
    con.Close()
    Me.Close()
End Sub

在您的标准表达式中只有一个字段,Id。我怀疑它实际上是一个整数,而不是文本。因此,请删除引号:(并在单引号和where之间添加空格)。

"' where ID=" & lblID2.Text & "

但是这会使你容易受到sql注入攻击,所以你应该参数化你的查询。

相关内容

最新更新