2010-06-14 49 views
0

我在更新SQL數據庫時遇到問題,但問題不在於它根本不更新,而是那些特定的參數正在更新,而其他參數不是。更新ASP.NET中的數據庫時出錯

這裏是代碼用於更新參數:

string EditRequest = "UPDATE Requests SET Description = @Desc, BJustif = @Justif, Priority = @Priority, Requested_System = @Requested, Request_Status = @Stat WHERE"; 
    EditRequest += " [email protected]"; 

    SqlConnection Submit_conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["DBConn"].ConnectionString); 
    SqlCommand Submit_comm = new SqlCommand(EditRequest, Submit_conn); 


    Submit_comm.Parameters.AddWithValue("@ID", Request.QueryString["reqid"]); 
    Submit_comm.Parameters.AddWithValue("@Desc", DescBox.Text); 
    Submit_comm.Parameters.AddWithValue("@Justif", JustifBox.Text); 
    Submit_comm.Parameters.AddWithValue("@Priority", PriorityList.SelectedValue); 
    Submit_comm.Parameters.AddWithValue("@Requested", RelatedBox.Text); 
    Submit_comm.Parameters.AddWithValue("@Stat", 1); 

    Submit_conn.Open(); 

    Submit_comm.ExecuteNonQuery(); 

    Submit_comm.Dispose(); 

    Submit_comm = null; 

    Submit_conn.Close(); 

    get_Description(); 

    Page.ClientScript.RegisterStartupScript(this.GetType(), "Refresh", "ReloadPage();", true); 

這個功能是由一個彈出窗體上的一個按鈕,它示出了在文本框,其也被用於被改變的參數的內容被稱爲將更改提交回數據庫,但是當我按下提交時,表單上顯示的參數不會改變,即使我已經將代碼與類似的代碼進行比較,我也找不到任何代碼問題工作正常。

如果你需要,這裏是我用來顯示和編輯內容的文本框之一:

<asp:TextBox ID="JustifBox" TextMode="MultiLine" runat="server" Width="250" Height="50"></asp:TextBox> 

究竟什麼是錯誤的代碼?

編輯:我忘記提及,當我追蹤該功能時,似乎控件的內容在我提交時並沒有改變,但被重新提交,就好像它們沒有改變原來的形式一樣。

+0

什麼參數被更新,哪些不是? – Restuta 2010-06-14 06:36:31

+0

可能你是用相同的值更新它們嗎? – Restuta 2010-06-14 06:50:24

+0

正在改變的值是綁定到控件的值,問題似乎是控件的內容沒有改變,即使我編輯它們。 – Viredae 2010-06-14 07:26:07

回答

0

您這裏提到的兩個問題:

1)字段在數據庫時進行更新

2不更新)不被更新,UI最新數據

先解決SQL UPDATE查詢。哪些字段沒有被更新?將T-SQL查詢複製粘貼到查詢分析器中,然後檢查哪個字段正在更新,哪些字段不是。此外,您的代碼是打開到SQL注入,所以閱讀,然後調整代碼。

對於未更新的用戶界面,您需要查看您是否正在用正確的對象填充UI字段。

+0

1)正如我在編輯中提到的那樣,我追蹤了SQL查詢,它確實更新了所有內容,但問題證明我提交的內容是由於某種原因而未編輯的對象(IOW問題2 )。 2)就像我之前提到的(再次),控件正確地使用了字段的值,您打算使用這些控件進行編輯,並且當您按下提交按鈕時,它們應該返回控件的值,並且他們正在提交,但由於某種原因,由於某種原因,控制器不會確認他們的值因我按下按鈕而發生了變化。 – Viredae 2010-06-16 11:25:31