繁体   English   中英

存储过程不起作用?

[英]Stored procedure is not working?

我要删除的代码如下所示:

 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文件一样?

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

这是调试时得到的:

范例图片

您可以像其他任何代码一样踏入/跳出/越过-在这种情况下非常有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM