Asp.net 关闭SQLDataSource连接

Asp.net 关闭SQLDataSource连接,asp.net,data-binding,gridview,oracle9i,Asp.net,Data Binding,Gridview,Oracle9i,我使用GridView.DataBind()将SQLDataSource绑定到GridView,执行这些查询通常需要很长时间 什么代码会取消正在进行的DataBind() 我似乎找不到任何方法来停止DataBind(),甚至关闭数据库连接 重新绑定尝试: myConn.ConnectionsString = "" myConn.SelectCommand = "" myGrid.DataSource = Nothing myGrid.DataBind() 处置尝试 myConn.Dispose

我使用
GridView.DataBind()
SQLDataSource
绑定到
GridView
,执行这些查询通常需要很长时间

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

我似乎找不到任何方法来停止
DataBind()
,甚至关闭数据库连接

重新绑定尝试:

myConn.ConnectionsString = ""
myConn.SelectCommand = ""
myGrid.DataSource = Nothing
myGrid.DataBind()
处置尝试

myConn.Dispose()
myGrid.Dispose()

两次尝试都没有实际关闭连接。Oracle仍然表示它仍在连接并执行查询。

您可以手动绑定GridView,这将允许您在绑定过程中插入逻辑以退出该过程

为此,请订阅GridView的onDataBinding事件


您可以在此处阅读有关手动绑定GridView的更多信息:

您可以手动绑定GridView,这将允许您在绑定过程中插入逻辑以退出该过程

为此,请订阅GridView的onDataBinding事件


您可以在此处阅读有关手动绑定GridView的更多信息:

从另一个方向解决问题如何。您是否考虑过优化查询,或者通过更改联接和子查询,或者仅仅根据页面上的其他输入提取较少的数据?

从不同的方向解决问题如何。您是否考虑过优化查询,或者通过更改联接和子查询,或者简单地根据页面上的其他输入提取较少的数据?

我同意Dave的观点,不过我建议在这种情况下使用分页。有很多种变体,但我在这里的第一种方法是将每次拉回的行数限制为特定的数目。尝试建立连接,然后如果它没有及时响应就中断连接,这只会让应用程序用户感到沮丧

这里有一个帖子可能会帮助你开始


我同意Dave的观点,不过我建议在这种情况下使用分页。有很多种变体,但我在这里的第一种方法是将每次拉回的行数限制为特定的数目。尝试建立连接,然后如果它没有及时响应就中断连接,这只会让应用程序用户感到沮丧

这里有一个帖子可能会帮助你开始


使用{}块适合这种情况。通过使用block使用您的连接

使用{}block适合这种情况。使用块使用您的连接只需关闭连接并释放所有资源

myConn.Close();
myConn.Dispose();

只需关闭连接并释放所有资源

myConn.Close();
myConn.Dispose();

详细说明“插入逻辑…以退出该过程”。我想停止数据绑定,关闭数据库连接,从而终止对数据库的查询。我的意思是,您可以编写自己的逻辑来填充GridView,而不是使用SQLDataSource中的SelectCommand来自动填充GridView。因此,在为GridView调用onDataBinding的注册函数中,您可以查询数据库并开始将值插入GridView。这是一个相当大的工作量,因为你真的在重新发明轮子,但它允许你随时停止这个过程,关闭连接,甚至向用户提供反馈。这有用吗?我如何关闭连接?我找不到这个方法。好吧,我假设在这个代码隐藏函数中你打开了连接,这意味着你只需要在你的连接对象上调用.Close()函数。在我的代码和你提供的示例页面中都没有显式的打开/关闭调用。在ASP XML代码中,我将GridView的DataSourceID设置为SQLDataSource。我的page_load()事件处理程序只调用DataBind并格式化GridView。我想停止数据绑定,关闭数据库连接,从而终止对数据库的查询。我的意思是,您可以编写自己的逻辑来填充GridView,而不是使用SQLDataSource中的SelectCommand来自动填充GridView。因此,在为GridView调用onDataBinding的注册函数中,您可以查询数据库并开始将值插入GridView。这是一个相当大的工作量,因为你真的在重新发明轮子,但它允许你随时停止这个过程,关闭连接,甚至向用户提供反馈。这有用吗?我如何关闭连接?我找不到这个方法。好吧,我假设在这个代码隐藏函数中你打开了连接,这意味着你只需要在你的连接对象上调用.Close()函数。在我的代码和你提供的示例页面中都没有显式的打开/关闭调用。在ASP XML代码中,我将GridView的DataSourceID设置为SQLDataSource。My page_load()事件处理程序只调用DataBind并格式化GridView。