我正在使用带有登录对话框的ASP.NET webforms编写应用程序。成功验证后,将打开连接,但从其他Web表单中看不到连接对象。有没有办法让它持久和可访问(在某些服务器会话对象中),还是通常以其他方式完成?任何提示赞赏。
答案 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对象执行其他操作,则只需执行一次而不是代码中的任何位置。