我有一个更新SQL表的Web表单。表格按预期运作。我遇到了一些新用户输入错误条目的问题(用户犯了错误!)我需要让用户能够反转条目。我想做的只是在表单上放一个复选框。当用户点击“应用”按钮时,系统将运行将信息输入表中的存储过程,或从表中删除信息。我想要做的是使用case语句 - 如果chboxReverse.True,运行存储过程2,否则运行存储过程1.我还想在存储过程完成后将值重置为false。
以下是cs文件信息:
protected void btnUpdate_Click(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection("server=(local);database=InvoiceSHC;Trusted_Connection=Yes"))
{
// Get the UserId of the logged in user
string UserName = "";
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
UserName = HttpContext.Current.User.Identity.Name.ToString();
}
else
{
UserName = "UnauthenticatedUser";
}
string Timestamp = DateTime.Now.ToString();
//Not sure why you need a SqlDataAdapter unused here.
//SqlDataAdapter DA = new SqlDataAdapter("UpdateSHCInvoice", con);
SqlCommand cmd = new SqlCommand("UpdateSHCInvoice", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Ref", dlRef.SelectedItem.Value);
cmd.Parameters.AddWithValue("@PhaseName", dlPhase.SelectedItem.Value);
cmd.Parameters.AddWithValue("@PageType", dlPageType.SelectedItem.Value);
cmd.Parameters.AddWithValue("@Page", tbPage.Text);
cmd.Parameters.AddWithValue("@Percent", dlPercent.SelectedItem.Value);
cmd.Parameters.AddWithValue("@ChngType", dlChngType.SelectedItem.Value);
cmd.Parameters.AddWithValue("@UserName", UserName);
cmd.Parameters.AddWithValue("@Timestamp",Timestamp);
cmd.Parameters.AddWithValue("@Quantity", tbQty.Text);
con.Open();
cmd.ExecuteNonQuery();
GridView1.DataBind();
我想要做的就是保持一致,只需根据复选框值更改存储过程名称。
这可能吗?
我正在使用Visual Web Developer 2008 Express和SQlServer 2008 R2
答案 0 :(得分:0)
您可以尝试这样做...只需在声明sqlcommand cmd时添加此代码...保持休息状态......
SqlCommand cmd = new SqlCommand();
if(chboxReverse.Cheked==true)
cmd.CommandText="NameofStoreProcedure2";
else
cmd.CommandText="NameofStoreProcedure2";
cmd.Connection=con;