Asp.net 中继器数据绑定后连接关闭

Asp.net 中继器数据绑定后连接关闭,asp.net,connection,repeater,Asp.net,Connection,Repeater,我最近改变了我的网络应用程序的连接方式,现在我面临着一些我不明白的事情 我有一个页面,在页面加载中调用一个名为“ItemGet”的函数,当第一个中继器(Repeater1)中没有数据时,它可以完美地工作。当我点击一个按钮,用不同的数据重新加载页面时(我知道中继器中有数据),连接会在同一中继器(中继器1)之后自动关闭。问题是,在(RepeaterTopen)之后有另一个中继器需要相同的连接。在调用该函数之后,我立即手动关闭了连接,但至少在整个函数期间,我需要连接保持打开状态 你们知道它为什么会自动

我最近改变了我的网络应用程序的连接方式,现在我面临着一些我不明白的事情

我有一个页面,在页面加载中调用一个名为“ItemGet”的函数,当第一个中继器(Repeater1)中没有数据时,它可以完美地工作。当我点击一个按钮,用不同的数据重新加载页面时(我知道中继器中有数据),连接会在同一中继器(中继器1)之后自动关闭。问题是,在(RepeaterTopen)之后有另一个中继器需要相同的连接。在调用该函数之后,我立即手动关闭了连接,但至少在整个函数期间,我需要连接保持打开状态

你们知道它为什么会自动关闭的原因吗?我能做些什么来防止它在这个时候关闭

代码如下:

private void ItemsGet(string csCategory, string csTimeFrame)
{
    DataSet data;

    if (csCategory == null)
    {
        data = m_database.GetPost(Tools.GetPostLang(), Session["TimeFrame"].ToString());
        Page.Title = m_database.GetTranslation(509);
    }
    else
    {
        data = m_database.GetPost(Convert.ToInt32(csCategory), Tools.GetPostLang(), Session["TimeFrame"].ToString());
        Page.Title = m_database.GetTranslation(508) + m_database.GetCategoryName(Convert.ToInt32(csCategory));
    }         

    // Populate the repeater control with the Items DataSet
    PagedDataSource objPds = new PagedDataSource();
    objPds.DataSource = (DataView)(data.Tables[0].DefaultView);

    // Indicate that the data should be paged
    objPds.AllowPaging = true;

    // Set the number of items you wish to display per page
    objPds.PageSize = 5;

    // Set the PagedDataSource's current page
    if (CurrentPage != 0)
        objPds.CurrentPageIndex = CurrentPage;
    else
        objPds.CurrentPageIndex = 0;

    lblCurrentPage.Text = m_database.GetTranslation(423) + (CurrentPage + 1).ToString() + m_database.GetTranslation(422) + objPds.PageCount.ToString();

    // Disable Prev or Next buttons if necessary
    btnPrev.Enabled = !objPds.IsFirstPage;
    btnNext.Enabled = !objPds.IsLastPage;

    Repeater1.DataSource = objPds;
    Repeater1.DataBind();

    DataSet dataTopTen = m_database.GetTopTenUser();
    RepeaterTopTen.DataSource = dataTopTen;
    RepeaterTopTen.DataBind();

}

因为没有人回答这个问题,所以我创建了一个函数来检查连接是否打开,如果没有,则打开它。我仔细检查了它是否每次都关闭。

如果声明数据库对象并在
页面加载
方法中调用数据库连接的open方法,那么数据库连接将在整个页面生命周期内保持打开状态。在此函数中声明数据库连接后,数据库对象将超出范围,并在函数结束时关闭