Asp.net ajax更新面板共享数据库连接
我在更新面板中有一个下拉框和一个文字标记。在下拉菜单的selection change事件中,重新查询数据库并重新填充文字标记,然后调用UPdatePanel.Update() 下面是我可以避免每次创建一个新的OLEDB连接的方法,因为这看起来很慢。我是否可以重复使用和存储:Asp.net ajax更新面板共享数据库连接,asp.net,database,ajax,Asp.net,Database,Ajax,我在更新面板中有一个下拉框和一个文字标记。在下拉菜单的selection change事件中,重新查询数据库并重新填充文字标记,然后调用UPdatePanel.Update() 下面是我可以避免每次创建一个新的OLEDB连接的方法,因为这看起来很慢。我是否可以重复使用和存储: 数据源 页面中的连接 如果是这样,如何在从GUI到服务器的调用之间保持这种状态?下面是我的选择更改代码 protected void cboPeople_SelectedIndexChanged(object sender
protected void cboPeople_SelectedIndexChanged(object sender, EventArgs e)
{
string dataSource = ConfigurationSettings.AppSettings["contactsDB"];
var objConn = new OleDbConnection(dataSource);
string id = People[cboPeople.Text];
UpdateLiteral(objConn, id);
}
您需要为每个请求重新创建此文件。您有一个无状态服务器。你永远不知道你的客户何时或是否会回电话。您不希望保持与数据库的开放连接,也不能在维护一个数据库连接的同时简单地为多个客户端提供服务 部署高性能 应用程序中,必须使用连接 联营。当你使用.NET时 OLE DB的框架数据提供程序, 您不必启用连接 池,因为提供程序管理 这是自动的。更多 有关如何使用的信息 与.NET的连接池 OLE DB的框架数据提供程序, 请参见OLE DB、ODBC和Oracle 连接池(ADO.NET)。 从
使用.NET使您的连接比需要的时间更长不是一个好主意。好的做法是在它周围放一个using语句(所以它总是被清理干净): .NET使用,这意味着当您关闭/处置连接时,它实际上并没有关闭连接,而是重置连接并将其添加回池中。下次需要连接时,将从池中使用该连接。因此,开销没有你想象的那么多,也不慢。实际上,您会发现,只要一次只需要一个连接,它就会使用相同的连接
保持连接打开的危险在于,它们永远不会关闭,在高需求情况下,您的连接将用尽。使用viewState字典如何?如果用户从未返回页面,则无法检索该字典。
string dataSource = ConfigurationSettings.AppSettings["contactsDB"];
using(var objConn = new OleDbConnection(dataSource))
{
string id = People[cboPeople.Text];
UpdateLiteral(objConn, id);
}