用dataSource.DeleteCommand删除数据时,在什么时间里面捕捉错误的反馈信息

谢紫枫 2006-07-10 01:25:49
比如我用dataSource1作为gridview1的数据源,采用存储过程进行删除,如下
dataSource1.DeleteCommandType = SqlDataSourceCommandType.StoredProcedure;
dataSource1.DeleteCommand = "Stored_Procedures1";

在存储过程中有错误反馈信息,如下
CREATE procedure dbo.Stored_Procedures1
(@id int)
as
if exists (select * table1
where sign='Y'AND id = @id )
begin
raiserror('已操作的编号不可以删除!',16,1)
return
end
else
begin
delete from table1 where id = @id
end
GO

这样如果sign='N'则顺利执行删除,可当sign='Y'是,就会跳到错误界面了

我用自定义的button1,删除text1里面的编号时,利用如下代码进行的错误捕捉
protected void del_coupon_Click(object sender, EventArgs e)
{
SqlCommand add_coupon_code = new SqlCommand();
add_coupon_code.Connection = conn;
add_coupon_code.CommandType = CommandType.StoredProcedure;
add_coupon_code.CommandText = "Stored_Procedures1";
add_coupon_code.Parameters.Add("id", int).Value = id.Text;
try
{
conn.Open();
add_coupon_code.ExecuteNonQuery();
Page.ClientScript.RegisterStartupScript(this.GetType(), "OK", "<script lanuage=javascript>alert('已删除')</script>");
}
catch (System.Exception Ex)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "OK", "<script lanuage=javascript>alert('" + Ex.Message + "')</script>");
}
finally
{
conn.Dispose();
}
}

请问类似的情况在用dataSource.DeleteCommand删除时,捕捉事件应该写在什么事件里面?
我用RowDeleted,RowDeleting或者是在dataSource1.DeleteCommand建立try,catch都没有效果
或是我的写法有问题,请指教,谢谢!
...全文
192 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cabee 2006-07-11
  • 打赏
  • 举报
回复
up
谢紫枫 2006-07-10
  • 打赏
  • 举报
回复
to:francsescoli(我爱世界杯)
我添加了sqldatasource_inserted事件,里面就简单按照你的例子放置了
if(e.Exception == null)
{
//成功插入
}
else
{
System.Data.SqlClient.SqlException se = e.Exception as System.Data.SqlClient.SqlException;
//接着处理
}
可是仍然会跳转到出错页面,感觉上没有触发sqldatasource_inserted事件
换成sqldatasource_deleteed也是一样的效果
还有为什么删除操作会触发sqldatasource_inserted事件呢?
谢谢指教

to:nmgwolf(草原狼)
代码多乱姑且不提,我只是一个判断问题,单逻辑,利用sqldatasource的delete做删除,扔出错误,仅此而已,你认为还可以怎样简化?
francsescoli 2006-07-10
  • 打赏
  • 举报
回复
处理 sqldatasource_inserted事件
参数SqlDataSourceStatusEventArgs e里包含了Exception

if(e.Exception == null)
{
//成功插入
}
else
{
System.Data.SqlClient.SqlException se = e.Exception as System.Data.SqlClient.SqlException;
//接着处理
}
nmgwolf 2006-07-10
  • 打赏
  • 举报
回复
代码太乱了!把问题简单化些!
不是大问题!看看约束会不会影响他?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧