是否有可能存在大量使用asp:SqlDataSource和很多3306端口的时间等待状态之间的连接?
asp:sqldatasource是否自动关闭连接?如果没有,如何关闭slqdatasource的连接?
提前致谢, FIRMINO
答案 0 :(得分:0)
尝试<asp:SqlDataSource DataSourceMode="DataSet" />
。
来自MSDN:
数据检索模式标识SqlDataSource控件如何从底层数据库检索数据。 当DataSourceMode属性设置为DataSet值时,数据将加载到DataSet对象中并存储在服务器的内存中。这使得用户界面控件(如GridView)提供排序,过滤,和分页功能。 当DataSourceMode属性设置为DataReader值时,IDataReader对象将检索数据,该对象是只进,只读游标。 IDataReader对象的特定类型取决于SqlDataSource使用的NET数据提供程序,该提供程序由ProviderName属性标识。默认情况下,SqlDataSource控件使用Microsoft SQL Server的提供程序,System.Data.SqlClient,数据读取器是SqlDataReader对象。
DataReader
需要打开连接才能运行 - 它直接从DB返回数据。在约束DataSet
中将数据从DB加载到内存,因此只为实际读取/更新/插入/删除打开连接,然后可以关闭(=返回池)。