急:为何不能抛出异常?
webform程序中,我想循环删除记录,但若遇到不能删除的记录时能抛出异常并弹出窗口提示用户,代码如下:
for(int i = 0; i < dgrid.Items.Count;i++)
{
setting.Clear();
data.Clear();
_positionid = dgrid.Items[i].Cells[0].Text;
chk = (CheckBox)dgrid.Items[i].FindControl("chkDel");
if(chk.Checked)
{
try
{
setting.Add("PositionID",_positionid); DataStore.Manage(myConnection,null,"Deletetable2",setting);
}
catch (System.Data.SqlClient.SqlException ex)
{
string position = dgrid.Items[i].Cells[2].Text;
Response.Write("<script>alert('错误:" + position + "此职位还有员工,不能删除该职位!');this.location='MemberPositionList.aspx';</script>");
}
存储过程是:
CREATE PROCEDURE Deletetable2
(@ID int
) AS
declare @UsedCount int
select @UsedCount=Count(*) from table1 where ID = @ID
if (@UsedCount > 0)
return 1
delete from table2
where ID = @ID
if(@@Error <> 0)
begin
rollback tran
return -1
end
GO
执行的结果是正确的,但没有提示框弹出来,调试过,但无论记录是否允许删除,程序都没有走catch那一段代码,奇怪!
请教各位这是何故,如何改正?
问题点数:20、回复次数:6Top
1 楼MickeyH(小米)回复于 2004-12-01 17:43:34 得分 0
说明:DataStore.Manage(myConnection,null,"Deletetable2",setting);
是把指定的记录删除!Top
2 楼waximi(阿猫)回复于 2004-12-01 18:03:13 得分 10
catch (Exception ex)试试Top
3 楼xinbin1122(我喜欢这个奇怪的世界)回复于 2004-12-01 18:20:33 得分 0
转到winform中看看行不行Top
4 楼yanransoft()回复于 2004-12-01 18:26:53 得分 10
catch (System.Data.SqlClient.SqlException ex)仅能捕获Sql异常,若想捕获所有异常请改用catch (Exception ex)Top
5 楼yingjie821(午夜流星)回复于 2004-12-01 18:39:18 得分 0
同意楼上意见,可以试试Top
6 楼MickeyH(小米)回复于 2004-12-03 11:45:08 得分 0
试过了不行,完全不行,程序都不走catch那一块...Top




