Asp.net 中继器数据绑定后连接关闭
我最近改变了我的网络应用程序的连接方式,现在我面临着一些我不明白的事情 我有一个页面,在页面加载中调用一个名为“ItemGet”的函数,当第一个中继器(Repeater1)中没有数据时,它可以完美地工作。当我点击一个按钮,用不同的数据重新加载页面时(我知道中继器中有数据),连接会在同一中继器(中继器1)之后自动关闭。问题是,在(RepeaterTopen)之后有另一个中继器需要相同的连接。在调用该函数之后,我立即手动关闭了连接,但至少在整个函数期间,我需要连接保持打开状态 你们知道它为什么会自动关闭的原因吗?我能做些什么来防止它在这个时候关闭 代码如下:Asp.net 中继器数据绑定后连接关闭,asp.net,connection,repeater,Asp.net,Connection,Repeater,我最近改变了我的网络应用程序的连接方式,现在我面临着一些我不明白的事情 我有一个页面,在页面加载中调用一个名为“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方法,那么数据库连接将在整个页面生命周期内保持打开状态。在此函数中声明数据库连接后,数据库对象将超出范围,并在函数结束时关闭