Try and Catch不能处理SQL open命令

时间:2013-04-19 18:04:41

标签: asp.net sql try-catch

我想通过使用SQL数据库连接检查身份验证来启动我的页面。这是我的代码,我无法弄清楚它为什么不起作用:

public partial class SiteMaster : System.Web.UI.MasterPage
{
  protected void Page_Load(object sender, EventArgs e)
  {
    // Try to open database.
    try
    {
        SqlConnection con = new SqlConnection();
        con.ConnectionString = WebConfigurationManager.ConnectionStrings["blahblah"].ConnectionString;
        con.Open();
        con.Close();
        //successful login, do nothing.
    }
    catch (Exception err) //if error Opening, catch the error, and display
    {
        SiteMasterMsg.Text = "Could not login in using ___.";
        SiteMasterMsg.Text += err.Message;
    }

问题是页面刚刚死亡,并给我提供默认的IIS错误页面,显示数据库连接登录失败。我希望它会“尝试”连接,然后在失败的登录尝试中捕获错误,并显示包含错误的页面。我在Default.aspx页面上有这个:

<asp:Label id="SiteMasterMsg" runat="server" />

我无法弄清楚出了什么问题。我错过了什么,或者有更好的方法可以做到这一点吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

我意识到问题是因为这个代码在我的Site.Master.cs页面上,所以页面永远不会真正完全开发,它会停在某种程度的错误,这就是我所看到的。解决方案是创建一个专用的Login.aspx页面,而不是将此代码放在Site.Master.cs页面中。