2013-12-18 20 views
0

我有一個web表單,我正在使用它來更改數據庫中的特定記錄。這些字段由數據通過C#代碼填充後面使用SqlDataReader對象如下:ASP.NET Web窗體更新命令不起作用

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中傳遞的值是什麼,我想它可能會在回發後清除。我不確定,但請仔細檢查它