我将 SQLDataSource 来一个 GridView 使用 GridView.DataBind() 并且这些查询,往往需要大量的时间来执行。

什么代码将取消正在进行的 DataBind()?

我似乎找不到任何方法阻止 DataBind() 或甚至接近的数据库连接。

重新绑定尝试:

myConn.ConnectionsString = ""
myConn.SelectCommand = ""
myGrid.DataSource = Nothing
myGrid.DataBind()

处置的尝试

myConn.Dispose()
myGrid.Dispose()

既没有企图实际上关闭了连接。Oracle仍然表示它仍然是连接和执行查询。

有帮助吗?

解决方案

你可以手动结合在内,这将能让你插入逻辑的结合程序,让你退出这一程序。

要做到这一订阅onDataBinding事件。

你可以读取更多关于手工结合的内在这里: http://www.aarongoldenthal.com/post/2009/04/19/Manually-Databinding-a-GridView.aspx

其他提示

如何从不同的方向解决这个问题。你有没有看着优化查询,或者通过改变连接和子查询,或简单地通过拉动较少的数据,也许基于页面上的其他投入?

我同意戴夫,但我会在这种情况下建议分页。有许多变化,但在这里,我的第一个办法是限制的行数在时间拉回到一个具体的数字。试图建立连接,然后打破它,如果它这么想的及时响应,只是要阻挠你的应用程序的用户。

下面是一个职位,可以帮助您开始。

智能寻呼与数据网格

使用{}块适合本的情况。使用连接用块

刚关闭连接并释放所有资源。

myConn.Close();
myConn.Dispose();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top