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。