广泛使用SqlDataSource和太多3306次等待连接

时间:2016-05-07 23:57:40

标签: c# mysql asp.net tcp-ip

是否有可能存在大量使用asp:SqlDataSource和很多3306端口的时间等待状态之间的连接?

asp:sqldatasource是否自动关闭连接?如果没有,如何关闭slqdatasource的连接?

提前致谢, FIRMINO

1 个答案:

答案 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加载到内存,因此只为实际读取/更新/插入/删除打开连接,然后可以关闭(=返回池)。

来源:SqlDataSource.DataSourceMode