c# - SQL连接到数据库重复

标签 c# asp.net sql-server ado.net connection

好的,现在我正在使用 SQL 数据库从不同的表中获取值...所以我建立连接并获取这样的值:

DataTable dt = new DataTable();
SqlConnection connection = new SqlConnection();
connection.ConnectionString = ConfigurationManager.ConnectionStrings["XYZConnectionString"].ConnectionString;
connection.Open();
SqlCommand sqlCmd = new SqlCommand("SELECT * FROM Machines", connection);
SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);

sqlCmd.Parameters.AddWithValue("@node", node);
sqlDa.Fill(dt);
connection.Close();

所以这是页面上的一个查询,我正在调用页面上的许多其他查询。

那么我是否需要每次都打开和关闭连接...???

此外,如果不是,这部分在所有人中都是常见的:

DataTable dt = new DataTable();
SqlConnection connection = new SqlConnection();
connection.ConnectionString = ConfigurationManager.ConnectionStrings["XYZConnectionString"].ConnectionString;
connection.Open();

我可以把它放在一个函数中然后调用它吗..代码看起来会更干净... 我尝试这样做,但出现如下错误:

Connection does not exist in the current context.

有什么建议吗???

谢谢

最佳答案

  1. 您绝对可以共享“打开连接”代码,没有理由复制它。
  2. 使用 ASP.NET 的 SQL Server 提供程序,每次“关闭”连接的开销很小。它只是将连接返回到您进程的连接池(请参阅 here ),因此打开下一个连接将使用很少的开销。我认为在每次操作后关闭连接是一个很好的做法

关于c# - SQL连接到数据库重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2479167/

相关文章:

c# - 如何在不使用数据库的情况下生成 int/long 序列标识符?

c# - 未为 XAML 页面调用析构函数

ASP.NET 成员(member) : safe user delete

html - asp.net 如何创建悬停下拉菜单导航栏

sql-server - 每组中只有一个标记为主要记录的约束

c# - 在 Entity Core 中使用 Postgres lpad

c# - 使用带有 sas token 的 Rest api 更新表存储实体显示 "method not allowed"

javascript - 在 asp.net 中使用 updatePanel 后,DropDownList 丢失其属性

sql - 从一个表一次插入一条记录到多个表

sql-server - 红鲱鱼错误 "The user does not have permission to perform this action"