C# DataTable 和 SqlDataAdapter 打开、关闭连接和性能问题
C# DataTable and SqlDataAdapter open, close connection and performance issue
这是我用来从数据库中获取数据的函数
public static DataTable getDataTable(string sql, string tableName)
{
DataTable dt = new DataTable();
try
{
SqlDataAdapter da = new SqlDataAdapter(sql, new SqlConnection(strConn));
da.Fill(dt);
dt.TableName = tableName;
}
catch (Exception)
{
dt = null;
}
return dt;
}
问题是:
- 它会自动打开和关闭连接吗?因为我们似乎只将 sql 查询传递给 SqlDataAdapter,它没有打开或关闭连接。
- 是否会导致应用程序性能下降?
- 它会导致服务器(内存)出现任何性能问题吗?
提前致谢。
希望对你有所帮助
答案 1:
如果我没记错的话,SQLConnection 在幕后管理连接池。
这是一篇关于这个主题的好文章:
https://msdn.microsoft.com/en-us/library/ms971481.aspx
此外,最佳做法是使用 "using" 关键字来包装您的连接,因为它会在范围退出后自动关闭您的连接(有或没有例外)
using(SqlConnection conn = new SqlConnection())
{
conn.Open();
//Do Work with connection
} //Connection automatically closes here without the need to call conn.Close()
答案2:
Sql Connection open slow down or make application performance better
答案 3 :
这是我用来从数据库中获取数据的函数
public static DataTable getDataTable(string sql, string tableName)
{
DataTable dt = new DataTable();
try
{
SqlDataAdapter da = new SqlDataAdapter(sql, new SqlConnection(strConn));
da.Fill(dt);
dt.TableName = tableName;
}
catch (Exception)
{
dt = null;
}
return dt;
}
问题是:
- 它会自动打开和关闭连接吗?因为我们似乎只将 sql 查询传递给 SqlDataAdapter,它没有打开或关闭连接。
- 是否会导致应用程序性能下降?
- 它会导致服务器(内存)出现任何性能问题吗?
提前致谢。
希望对你有所帮助
答案 1: 如果我没记错的话,SQLConnection 在幕后管理连接池。
这是一篇关于这个主题的好文章: https://msdn.microsoft.com/en-us/library/ms971481.aspx
此外,最佳做法是使用 "using" 关键字来包装您的连接,因为它会在范围退出后自动关闭您的连接(有或没有例外)
using(SqlConnection conn = new SqlConnection())
{
conn.Open();
//Do Work with connection
} //Connection automatically closes here without the need to call conn.Close()
答案2: Sql Connection open slow down or make application performance better
答案 3 :