c# - C# DataTable 和 SqlDataAdapter 打开、关闭连接和性能问题
问题描述
这是我用来从数据库中获取数据的函数
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()
推荐阅读
- r - 在 WordPress 上发布 RMarkdown 创建的帖子
- python - 我在 Python 中遇到 TypeError。如何修复“NoneType”对象不可迭代错误?
- c++ - 从 'const int*' 到 'int*' 的无效转换
- asp.net - 如何在 Blazor WebAssembly 的 blazor-error-ui 元素中显示错误详细信息?
- azure-devops - 如何在 Power BI 中为 Azure Devops 中的结果创建测试结果可追溯性报告?
- android - 我可以从 MotionLayout 导出动画吗?
- html - 如何水平居中对齐移动和桌面视图的网页?
- c++ - 如何将 tolow 应用于字符串向量?
- vb.net - 视觉工作室表格印刷
- wordpress - 无法在插件中获取 Post 元数据