2013-12-18 2 views
0

데이터베이스의 특정 레코드를 변경하는 데 사용하는 웹 양식이 있습니다. 필드는 다음과 같이 SqlDataReader 개체를 사용하여 뒤에 C# 코드를 통해 데이터에 의해 채워집니다 :ASP.NET 웹 폼 업데이트 명령이 작동하지 않습니다.

protected void Page_Load(object sender, EventArgs e) 
    { 
     string str = "Data Source=My_DB;Initial Catalog=BillingAuths;Integrated Security=True"; 
     string queryString = 
      "SELECT * FROM [AuthRecords] WHERE [ID] = @RecordID;"; 

     using (SqlConnection connection = 
        new SqlConnection(str)) 
     { 
      SqlCommand command = new SqlCommand(queryString,connection); 
      connection.Open(); 
      int qRecord = Convert.ToInt32(Request.QueryString["RecordID"]); 
      command.Parameters.AddWithValue("@RecordID", qRecord); 
      SqlDataReader reader = command.ExecuteReader(); 

       while (reader.Read()) 
       { 
       EmailCntyDate.Text = (reader["EMailCountyDate"].ToString()); 
       EmailCtyCnct.Text = (reader["EMailCountyContact"].ToString()); 
       EmailCntyAppDate.Text = (reader["EMailCountyAppDate"].ToString()); 
       } 

이 잘 작동합니다 : 필드는 DB에서 올바른 값으로 채워집니다. 여기에서 사용자는 정보를 편집 한 다음 버튼을 클릭하여 UPDATE 명령을 활성화합니다. 이 코드는 HTML 형식입니다.

<asp:SqlDataSource ID="DB_Auths" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnection %>" UpdateCommand=" 
    UPDATE [dbo].[Records] 
    SET [EMailCountyContact][email protected], 
     [EMailCountyDate][email protected], 
     [EMailCountyApp][email protected] 
    WHERE [ID] = @RecordID"> 
    <UpdateParameters> 
    <asp:QueryStringParameter Name="RecordID" Type="Int32" DefaultValue="null" QueryStringField="RecordID" /> 
    <asp:ControlParameter ControlID="EmailCntyDate" Name="uEMailCountyDate" /> 
    <asp:ControlParameter ControlID="EmailCtyCnct" Name="uEMailCountyContact" /> 
    <asp:ControlParameter ControlID="EmailCntyApp" Name="uEMailCountyApp" /> 
    </UpdateParameters> 
</asp:SqlDataSource> 
<asp:Button runat="server" ID="Sumbit" Text="Save" OnClick="Sumbit_Click" /> 

업데이트 프로세스 (이론) 코드 숨김 활성화입니다 : 내가 버튼을 클릭하면
protected void Sumbit_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      DB_Auths.Update(); 
      Response.Redirect("~/Default.aspx"); 
     } 
     catch (Exception error) 
     { 
      Response.Write("WARNING: WRITE TO DATA WAREHOUSE FAILED! Error:" + error); 
     } 
    } 

이 오류 메시지가 반환되지 않으며 나는 업데이트로 리디렉션 성공했다 ; 그러나 데이터베이스를 검사 할 때 기록은 이전과 완전히 동일합니다.

무엇을 제공합니까?

+0

휴식 지점을 유지하고 어떤 값이 RecordID에 전달되는지 확인해 주시겠습니까? 포스트에서 삭제 될 수 있습니다. 나는 확실하지 않다. 그러나 그것을 두 번 점검해라. –

+1

그것은 그것을했다! 멍청한 놈 손 빌려 줘서 고마워! –

답변

0

휴식 지점을 유지하고 어떤 값이 RecordID에 전달되는지 확인해 주시겠습니까? 제 생각에 포스트 백에서 삭제 될 수 있습니다. 확실하지는 않지만 두 번 확인해주세요.

관련 문제