Asp.net ajax更新面板共享数据库连接

Asp.net ajax更新面板共享数据库连接,asp.net,database,ajax,Asp.net,Database,Ajax,我在更新面板中有一个下拉框和一个文字标记。在下拉菜单的selection change事件中,重新查询数据库并重新填充文字标记,然后调用UPdatePanel.Update() 下面是我可以避免每次创建一个新的OLEDB连接的方法,因为这看起来很慢。我是否可以重复使用和存储: 数据源 页面中的连接 如果是这样,如何在从GUI到服务器的调用之间保持这种状态?下面是我的选择更改代码 protected void cboPeople_SelectedIndexChanged(object sender

我在更新面板中有一个下拉框和一个文字标记。在下拉菜单的selection change事件中,重新查询数据库并重新填充文字标记,然后调用UPdatePanel.Update()

下面是我可以避免每次创建一个新的OLEDB连接的方法,因为这看起来很慢。我是否可以重复使用和存储:

  • 数据源
  • 页面中的连接 如果是这样,如何在从GUI到服务器的调用之间保持这种状态?下面是我的选择更改代码

    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);
    }