0

我有一个更新 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

4

1 回答 1

0

您可以尝试这样...只需从声明 sqlcommand cmd 中添加此代码...其余部分保持不变...

SqlCommand cmd = new SqlCommand();
if(chboxReverse.Cheked==true)
cmd.CommandText="NameofStoreProcedure2";
else
cmd.CommandText="NameofStoreProcedure2";
cmd.Connection=con;
于 2013-05-07T15:30:04.803 回答