日期:2014-05-19  浏览次数:20865 次

给SqlDataSource指定了DeleteCommand(存储过程)后怎样删记录?
目的:在GridView显示的主表记录中点击删除命令按钮后通过存储过程把主表记录及其相应的子表记录一起删除。  
create   procedure   DelMainAndChild  
(  
@parentID   int  
)  
as  
delete   from   ChildTable   where   PARENT_ID=@parentID  
delete   from   MainTable   where   ID=@parentID  

DelMainAndChild就是我给SqlDataSource的DeleteCommand指定的存储过程名。但点击删除时提示:为过程或函数   DelMainAndChild   指定了过多的参数。

------解决方案--------------------
create procedure DelMainAndChild
(
@parentID int
)
as
delete from ChildTable where PARENT_ID=@parentID
delete from MainTable where ID=@parentID

-----------------------------------
同时删除两个表的数据?


------解决方案--------------------
运行时怎么给参数赋值的代码贴出来看看?


------解决方案--------------------
GridView的AutoGenerateDeleteButton:True, DataKeyNames:id

在SqlDataSource的向导里设置Delete命令为存储过程时,生成:
<DeleteParameters>
<asp:Parameter Name= "id " Type= "Int32 " />
</DeleteParameters>

我觉得这个Parameter名:id和GridView的DataKeyNames指定的字段名一致,删除才会执行。