如何在Webforms中保持数据库连接的持久性

时间:2016-04-18 12:29:16

标签: asp.net

我正在使用带有登录对话框的ASP.NET webforms编写应用程序。成功验证后,将打开连接,但从其他Web表单中看不到连接对象。有没有办法让它持久和可访问(在某些服务器会话对象中),还是通常以其他方式完成?任何提示赞赏。

2 个答案:

答案 0 :(得分:1)

最好的方法是打开/关闭要使用它的连接。不要共享它,也不要在ASP.NET中使用静态连接,这是一个多线程环境。您应该对实现using的所有对象使用IDisposable语句,以确保处置所有非托管资源。这也将关闭连接,即使出错:

using(var con = new SqlConnection("connection string here"))
{
    // do something ...
}

您无需担心每次都必须打开/关闭物理连接。 .NET connection pool将为您处理。 Related

答案 1 :(得分:0)

一个简单的例子。

设置一个类来处理SqlConnection对象(或者你正在使用的任何数据库):

<强> DbConnectionProvider.cs

using System.Data.SqlClient

public class DbConnectionProvider
{
  public static SqlConnection GetDbConnection()
  {
    return new SqlConnection("MyConnectionString");
  }
}

然后从需要使用数据库的所有类

<强> ApplicationClass.cs

using System.Data.SqlClient

public class ApplicationClass
{
  private void GetSomeDbWorkDone()
  {
     using(SqlConnection Conn = DbConnectionProvider.GetDbConnection())
     {
       //Do some fancy database operations here
     }
  }
}

这样,如果您需要更改Connection详细信息或对SqlConnection对象执行其他操作,则只需执行一次而不是代码中的任何位置。