asp.net中的UPDATE语句没有做任何事情

时间:2013-05-22 16:15:12

标签: asp.net sql

我正在我的网站上创建一个设置页面,用户可以在其中更改他的电子邮件地址,姓名等。 问题是更新语句,它不起作用,因为数据库中没有任何变化,但它没有给我一个错误,所以我不知道是什么。 当我检查断点时,它显示参数正在获得正确的值,当我在互联网上搜索时,我找不到任何有相同问题的人。

我将粘贴以下更新的代码:

Dim CmdUpdate As New OleDbCommand
        Dim Sqlstatement As String = "UPDATE tblUsers SET firstname = @firstname, lastname = @lastname, userPassword = @userPassword, email = @email, avatar = @avatar WHERE userID = @userID;"
        CmdUpdate.Connection = dbConn.cn
        CmdUpdate.CommandText = Sqlstatement

        CmdUpdate.Parameters.AddWithValue("firstname", txtFirstName.Text)
        CmdUpdate.Parameters.AddWithValue("lastname", txtLastName.Text)
        CmdUpdate.Parameters.AddWithValue("userID", Session("userID"))

        If txtPassword.Text = "" Then
            CmdUpdate.Parameters.AddWithValue("userPassword", Session("hashedpass"))
        Else
            CmdUpdate.Parameters.AddWithValue("userPassword", hash(txtPassword.Text))
        End If

        CmdUpdate.Parameters.AddWithValue("email", txtEmail.Text)
        CmdUpdate.Parameters.AddWithValue("avatar", strAvatar)

        dbConn.cn.Close()
        dbConn.cn.Open()
        CmdUpdate.ExecuteNonQuery()
        dbConn.cn.Close()

4 个答案:

答案 0 :(得分:1)

您只需在参数add语句中包含“@”:

CmdUpdate.Parameters.AddWithValue("@firstname", txtFirstName.Text)

......等等......

答案 1 :(得分:1)

错过了sql-parameters中的'@'

 CmdUpdate.Parameters.AddWithValue("@firstname", txtFirstName.Text)

答案 2 :(得分:1)

使用

CmdUpdate.Parameters.AddWithValue("@firstname", txtFirstName.Text)

您错过了在AddWithValue()

中添加'@'

See Tutorial here

答案 3 :(得分:1)

userid列是否可能不匹配,因此您的WHERE子句匹配零记录并且没有任何更新?这可能是由许多事情引起的 - 空白,字符编码等等。