我在更新SQL数据库时遇到问题,问题不在于它根本没有更新,而是在更新特定参数而其他参数未更新时。
这是更新参数的代码:
string EditRequest = "UPDATE Requests SET Description = @Desc, BJustif = @Justif, Priority = @Priority, Requested_System = @Requested, Request_Status = @Stat WHERE";
EditRequest += " Req_ID=@ID";
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 :(得分:0)
你在这里提到了两个问题:
1)执行UPDATE时,数据库中的字段不会更新
2)UI未使用最新数据
进行更新首先解决SQL UPDATE查询。哪些字段没有更新?复制粘贴查询分析器中的T-SQL查询,然后检查哪个字段正在更新,哪个不是。此外,您的代码是打开SQL注入所以阅读,然后调整代码。
对于未更新的UI,您需要查看是否使用正确的对象填充UI字段。