“我不想使用默认错误页面tachnique,因为我不希望网页重定向!”
是的,有尝试和捕获
是的,有办法为控件添加异常处理mathods覆盖
但我需要的是,
它可能只是一个简单的sql命令,它可能是一个控件,如formview,它可能是一个控件,如datagrid,无论它是什么,当在数据库的表中进行非法输入时,
“大错误页面不应该出现!!”
代替
同一页面顶部的标签(执行非法操作的地方)应显示错误,如
“由”此控件“引起的错误,错误消息为”此字段中不允许为空“等等。
谢谢
注意: - 我要求完整的代码!好的,请指导我,谢谢
答案 0 :(得分:0)
我认为最重要的是,您需要先验证数据,然后再尝试将数据放入数据库。
每个控件都包含自己的验证挂钩。检查MSDN上正在使用的控件的文档,以了解如何正确验证其中包含的数据。在验证过程中,您可以确定包含错误数据的控件并更新标签。
默认错误页面不是错误处理技术。当您的应用程序失败时,这是一个故障保护。您对数据库的更新会抛出愚蠢的异常 - 您的代码永远不会发生的异常 - 您甚至不应该处理它们 - 它们代表您的代码中需要修复的错误。
简单地抓取普通用户输入而不进行验证,尝试将其输入数据库,然后尝试检测问题是一种灾难。如果您这样做,我希望您至少将数据库命令包装在事务中,否则您最终会知道谁知道您的数据库中的内容。
答案 1 :(得分:0)
在SQL查询周围使用try
和catch
构造:如果catch
块中的代码被命中,则调用一个使您的错误标签可见的方法,并设置一些错误文本与失败的代码部分相关。
这是解决这个问题最干净,最广泛接受的方式;虽然你也应该有分离和封装。用户界面(例如,ASP.NET pagebehind代码)通常不应直接调用数据库;它会调用业务逻辑方法或数据访问层方法来更新数据库。但是,您仍然希望捕获从这些层抛出的异常。您可以做的“最好”是创建一个管理“错误”标签状态的方法。
希望有所帮助。