【发布时间】:2012-01-06 21:11:16
【问题描述】:
我正在向我的站点添加一个输入框,作为管理员,我可以在其中输入 sql select 语句,我在执行 select 的代码周围放置了一个 try catch 以尝试捕获语法错误,但即使这样,我的站点也会转到出现语法错误时的“应用程序错误/”页面。
我不明白我做错了什么。我正在 Asp.net v4 上开发。
执行自定义SQL命令的代码如下;
try
{
//edtSQL.Text = "WHRE Field='Value'"
//The Resulting SQL Command will be incorrect because of incorrect syntax
SqlDataSource1.SelectCommand = "SELECT * FROM DataTable " + edtSQL.Text;
SqlDataSource1.Select(new DataSourceSelectArguments());
}
catch(Exception ex)
{
//Bad Syntax should be caught here, but it is not. This never get called
// even when there is a syntax error.
lblQueryStatus.Text = "Error, can't execute SQL statment";
}
如果标签显示错误消息,则站点会给出错误并转到默认站点错误页面。
【问题讨论】:
-
你能提供你的代码,特别是你的按钮点击处理程序/
-
您确定没有在其他地方抛出异常吗?您是捕获所有异常还是仅捕获
SqlExceptions? -
请发布您的相关代码。你预计会发生什么?
-
@KeaganLadds:我已经重新打开,以便您可以添加详细说明解决方案的答案。然后,您可以选择它作为正确答案并关闭此问题。感谢您改进您的问题!