2014-12-19 2 views
0

Я делаю профиль обновления в веб-приложении с помощью vb.net. Сначала я читаю базу данных и помещаю данные в текстовое поле, затем меняю данные внутри текстового поля и нажимаю кнопку «Обновить». Проблема в том, что когда я нажимаю кнопку, она не обновляет последнее значение, которое я ввел в текстовое поле. Он все равно обновит значение, которое я прочитал из базы данных.база данных не может обновить значение текстового поля в vb.net

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 

Это, как я обновить значение текстового поля в моей базе данных, где имя пользователя спичка.

+0

значение txtUsername.Text такое же, как то, что вы получили из базы данных или ее изменения? вы должны использовать какой-то не редактируемый первичный ключ, где предложение запроса – Sandeep

ответ

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 
+0

Это работает! Спасибо за вашу помощь :) TQTQ –

+0

хорошо, первый раз, используя stackoverflow –

Смежные вопросы