2013-07-25 4 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' 블록은 모든 악의 뿌리가있을 때 당신이 일을 끝낼 확인하십시오. Btw,'FirstNameTextBox.Text = reader (9)'대신'FirstNameTextBox.Text = reader (reader.GetOrdinal ("[의사의 이름]"))'을 사용하는 것이 좋습니다. 읽기 쉽고 오류가 발생하기 쉽습니다. –

+0

글쎄 내 페이지를로드 함수에 원래 값을 설정하는 select 문을 가지고 HospitalTextBox.Text = reader (7) – user1342164

+1

그건 문제가있어 user1342164. 아래 내 메모를 참조하십시오. –

답변

3

Page_Load 기능을 확인하십시오.

PostBack에서 텍스트 상자 값을 다른 값으로 설정 하시겠습니까? 데이터를 바인딩하는 경우

, Not IsPostback

If Not IsPostBack 
    BindData() 
+0

그게 내가 추가해야만했다면 내 페이지에 NOTPOSTBACK로드 – user1342164

관련 문제