【问题标题】:database cannot update textbox value in vb.net数据库无法更新 vb.net 中的文本框值
【发布时间】:2014-12-19 05:29:24
【问题描述】:

我正在使用 vb.net 在 Web 应用程序中更新配置文件。起初我读取数据库并将数据放入文本框中,然后我更改文本框中的数据并单击“更新”按钮。问题是当我单击按钮时,它不会更新我在文本框中键入的最新值。它仍然会更新我从数据库中读取的值。

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)            Handles Me.Load
    Dim item1 As String = CType(Session.Item("UserAccount"), String)
    txtUsername.Enabled = False

    conn.Open()
    sql1 = "Select * From [Users] WHERE username='" & item1 & "'"
    cmd = New SqlCommand(sql1, conn)
    dr = cmd.ExecuteReader
    dr.Read()

    If dr.HasRows Then
        txtUsername.Text = dr.Item("username")
        password = dr.Item("password")
        txtFirstName.Text = dr.Item("firstname")
        txtLastName.Text = dr.Item("lastname")
        txtDob.Text = dr.Item("dob")
        txtEmail.Text = dr.Item("email")
        txtNumber.Text = dr.Item("phone")
        txtAddress.Text = dr.Item("address")
    End If
    dr.Close()
    conn.Close()
End Sub

'这张图片上方是我从数据库中读取数据的方式。

   Protected Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
    Dim errFirstName As Boolean = True
    Dim errLastName As Boolean = True
    Dim errCPassword As Boolean = True
    Dim errNPassword As Boolean = True
    Dim errDob As Boolean = True
    Dim errEmail As Boolean = True
    Dim errNumber As Boolean = True
    Dim errAddress As Boolean = True
    Dim newFName, newLName, newPassword, newAddress, newNumber, newEmail, newDob As String

    If txtFirstName.Text = "" Then
        txtFirstName.BackColor = Drawing.Color.LightPink
        lblFirstName.Text = "cannot be empty"
    ElseIf Not Regex.Match(txtFirstName.Text, "^[a-zA-Z_ ]*$", RegexOptions.IgnoreCase).Success Then

。 . .

这是“更新”按钮点击。 这是我对文本框中的值进行所有验证的地方

         If errNPassword = False And errCPassword = False And errFirstName = False And            errLastName = False And errDob = False And errEmail = False And errNumber =             False And errAddress = False Then
        conn.Open()
        sql2 = "Update [Users] Set password='" & newPassword & "', firstname='" & newFName & "', lastname='" & newLName & "', dob='" & newDob & "', address='" & newAddress & "', email='" & newEmail & "', phone='" & newNumber & "' WHERE username='" & txtUsername.Text & "'"

        cmd = New SqlCommand(sql2, conn)
        cmd.ExecuteNonQuery()

        conn.Close()
        Response.Redirect(String.Format("~/index.aspx?"))
    Else
        Dim message As String = "Please correct the error above"
        Dim sb As New System.Text.StringBuilder()
        sb.Append("<script type = 'text/javascript'>")
        sb.Append("window.onload=function(){")
        sb.Append("alert('")
        sb.Append(message)
        sb.Append("')};")
        sb.Append("</script>")
        ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", sb.ToString())
        Exit Sub 'break
    End If

这就是我如何将文本框的值更新到与用户名匹配的数据库中。

【问题讨论】:

  • txtUsername.Text 的值与您从数据库中获得的值相同,或者您正在更改它?您必须在查询的 where 子句中使用一些不可编辑的主键

标签: asp.net vb.net textbox


【解决方案1】:

您的页面正在回发并运行相同的代码,您必须将 If Not IsPostBack 添加到 Page_Load

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)            Handles Me.Load

    If Not IsPostBack
    Dim item1 As String = CType(Session.Item("UserAccount"), String)
    txtUsername.Enabled = False

    conn.Open()
    sql1 = "Select * From [Users] WHERE username='" & item1 & "'"
    cmd = New SqlCommand(sql1, conn)
    dr = cmd.ExecuteReader
    dr.Read()

    If dr.HasRows Then
        txtUsername.Text = dr.Item("username")
        password = dr.Item("password")
        txtFirstName.Text = dr.Item("firstname")
        txtLastName.Text = dr.Item("lastname")
        txtDob.Text = dr.Item("dob")
        txtEmail.Text = dr.Item("email")
        txtNumber.Text = dr.Item("phone")
        txtAddress.Text = dr.Item("address")
    End If
    dr.Close()
    conn.Close()
    End If
End Sub

【讨论】:

    猜你喜欢
    • 2021-11-23
    • 2012-02-17
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 2022-01-26
    相关资源
    最近更新 更多