存储过程删除整个表

时间:2014-04-29 07:20:06

标签: asp.net sql sql-server

我想在按钮点击时删除表格的所有行。存储过程如下:

create proc spTest
as 
begin
     Delete from tblTest
end

代码隐藏如下:

protected void Button3_Click(object sender, EventArgs e)
{
     string CS = ConfigurationManager.ConnectionStrings["EasyRozMoney_ConnectionString"].ConnectionString;
     using (SqlConnection con = new SqlConnection(CS))
     {
         SqlCommand cmd = new SqlCommand("spTest", con);
         cmd.CommandType = System.Data.CommandType.StoredProcedure;
         con.Open();
         lblStatus.Text = "Tasks Deleted Successfully.";
     }
}

但表格仍然不受影响,尽管标签显示所有任务已成功删除。问题是什么?我知道我正在做的事情非常愚蠢。

PS:我不想使用Truncate

5 个答案:

答案 0 :(得分:2)

您已创建Command执行它。您必须致电ExecuteNonQuery才能执行Command

作为附加说明,请将代码放在try-catch block中,以便在异常情况下您的应用程序不会终止

protected void Button3_Click(object sender, EventArgs e)
{
  try
  {
     string CS = ConfigurationManager.ConnectionStrings["EasyRozMoney_ConnectionString"].ConnectionString;
     using (SqlConnection con = new SqlConnection(CS))
     {
         SqlCommand cmd = new SqlCommand("spTest", con);
         cmd.CommandType = System.Data.CommandType.StoredProcedure;
         con.Open();
         cmd.ExecuteNonQuery();
         lblStatus.Text = "Tasks Deleted Successfully.";
     }
  }
  catch(Exception ex)
  {
      lblStatus.Text = "Tasks could not be deleted, Error " + ex.Message;
  }
}

答案 1 :(得分:1)

您必须使用ExecuteNonQuery命令执行查询。

protected void Button3_Click(object sender, EventArgs e)
{
     string CS = ConfigurationManager.ConnectionStrings["EasyRozMoney_ConnectionString"].ConnectionString;
     using (SqlConnection con = new SqlConnection(CS))
     {
         SqlCommand cmd = new SqlCommand("spTest", con);
         cmd.CommandType = System.Data.CommandType.StoredProcedure;
         con.Open();
         cmd.ExecuteNonQuery();
         lblStatus.Text = "Tasks Deleted Successfully.";
     }
}

答案 2 :(得分:0)

您永远不会执行您的查询。

这样称呼:

using (SqlConnection con = new SqlConnection(CS))
{
     SqlCommand cmd = new SqlCommand("spTest", con);
     cmd.CommandType = System.Data.CommandType.StoredProcedure;
     con.Open();
     /*new:*/
     cmd.ExecuteNonQuery();
     lblStatus.Text = "Tasks Deleted Successfully.";
}

答案 3 :(得分:0)

您忘记执行命令。

将此cmd.ExecuteNonQuery();添加到Button3_Click事件

答案 4 :(得分:0)

protected void Button3_Click(object sender, EventArgs e)
{
     string CS = ConfigurationManager.ConnectionStrings["EasyRozMoney_ConnectionString"].ConnectionString;
     using (SqlConnection con = new SqlConnection(CS))
     {
         SqlCommand cmd = new SqlCommand("spTest", con);
         cmd.CommandType = System.Data.CommandType.StoredProcedure;
         con.Open();
if(cmd.ExecuteNonQuery()>0)
{
         lblStatus.Text = "Tasks Deleted Successfully.";
}
else 
{
         lblStatus.Text = "Unable to  Delete tasks";
}

     }
}