存储过程不起作用?

时间:2014-07-17 07:36:44

标签: c# asp.net stored-procedures

我的删除代码隐藏如下:

 protected void delete(object sender, GridViewDeleteEventArgs e)
 {
     sc.connection();
     //string st = "delete";
     int id = Convert.ToInt32(((Label)(GridView1.Rows[e.RowIndex].FindControl("lblpro2"))).Text);
     SqlCommand cmd = new SqlCommand("maniputale", sc.con);
     cmd.CommandType = CommandType.StoredProcedure;
     cmd.Parameters.AddWithValue("@action", "delete");
     cmd.Parameters.AddWithValue("@mysid", 6);
     //cmd.Parameters.Add("@action", SqlDbType.VarChar,50).Value= st;
     //cmd.Parameters.Add("@mysid", SqlDbType.Int).Value = id;
     cmd.ExecuteNonQuery();
}

存储过程是:

 ALTER PROCEDURE maniputale
 (
    @mysid int = null,
    @myproducts nvarchar(20) = null,
    @mydescription varchar(50) = null,
    @myprice int = null,
    @mybrand varchar(20) = null,
    @mymid int = null,
    @action varchar = null
 )
 as
 Begin
     set NOCOUNT ON;

     if @action = 'insert'
     Begin
         Insert into sub_catTbl(products,description,price,brand,mid)
         values(@myproducts,@mydescription,@myprice,@mybrand,@mymid)
     End

     else if @action = 'select'
     Begin
         select * from sub_catTbl
     End

     else if @action = 'update'
     Begin
         update sub_catTbl set products=@myproducts,description = @mydescription,price =@myprice,brand=@mybrand,mid=@mymid
     End

     else if @action = 'delete'
     Begin
         delete from sub_catTbl where  sid=@mysid;
     End

 End

但它不起作用。它既没有显示任何变化也没有显示错误。

有没有办法检查存储过程是否正在执行,就像我们有断路器来检查.cs文件一样?

1 个答案:

答案 0 :(得分:1)

您可以像使用c#代码一样在SSMS中运行SP并进行调试。但是,如果您只是手动运行它很可能会失败,您将看到返回错误;如果您的SP抛出错误,则默认情况下不会返回到您的Web应用程序。

以下是调试时的结果:

Example image

您可以像其他任何代码一样进/出/上等 - 在这种情况下非常有用。