2013-07-25 28 views
2

當我點擊更新時出於某種原因使用下面的代碼時,hospitaltextbox.text不顯示文本框中的當前值?只是最初選定的價值。任何想法爲什麼它不讀取目前在文本框中的內容?Textbox.text不會顯示代碼中的更新文本

Dim reader As SqlDataReader = cmd.ExecuteReader() 
     If (reader.Read()) Then 

      HospitalTextBox.Text = reader(7) 
      FirstNameTextBox.Text = reader(9) 
      Session("ID") = reader(0) 
     End If 

Protected Sub cmdUpdate_Click(sender As Object, e As EventArgs) Handles cmdUpdate.Click 
    Dim Test As String 
    Test = FirstNameTextBox.Text 
    Try 
     Dim Con As SqlConnection 
     Dim cmd As SqlCommand 
     Con = New SqlConnection 
     Con.ConnectionString = "" 
     Con.Open() 
     cmd = New SqlCommand 
     cmd.Connection = Con 
     cmd.CommandText = "UPDATE tbltest SET [Teaching Hospital Name] = @TeachingHospitalName, [Physician First Name] = @FirstName WHERE ID = @ID" 
     cmd.Parameters.Add(New SqlParameter("@ID", (Session("ID")))) 
     cmd.Parameters.Add(New SqlParameter("@TeachingHospitalName", HospitalTextBox.Text)) 'does not show text that was changed in the textbox? 
     cmd.Parameters.Add(New SqlParameter("@FirstName", Test)) 
     cmd.ExecuteNonQuery() 
     Con.Close() 


    Catch ex As Exception 

    End Try 
End Sub 
+3

空'Catch'塊是一切罪惡的根源進行。順便說一句,而不是'FirstNameTextBox.Text = reader(9)'我推薦使用'FirstNameTextBox.Text = reader(reader.GetOrdinal(「[Physician First Name]」))''。它更具可讀性並且不易出錯。 –

+0

那麼在我的頁面加載函數中,我有select語句設置的值原來即HospitalTextBox.Text = reader(7) – user1342164

+1

這就是你的問題user1342164。請參閱下面的註釋。 –

回答

3

檢查您的Page_Load函數。

你在做什麼PostBack設置文本框的值爲別的東西?

如果你綁定數據,確保它的時候Not IsPostback

If Not IsPostBack 
    BindData() 
+0

就是這樣,我不得不添加If IS NOTPOSTBACK到我的頁面加載 – user1342164