在我的服务器应用程序中,我想使用 DB (SQL Server),但我不确定最佳方法。有些客户的请求进入线程池,因此他们的处理是异步的。每个请求通常都需要读取或写入数据库,所以我在考虑创建连接、执行查询并返回结果的静态方法。只怕打开和关闭连接是不是太慢了,是不是有些连接限制达不到?这是好方法吗?
最佳答案
恕我直言,最好依靠 ADO.NET 连接池机制,不要尝试手动处理数据库连接。像这样编写您的数据访问方法:
public void SomeMethod()
{
using (var connection = new SqlConnection(connectionString))
using (var command = connection.CreateCommand())
{
connection.Open();
command.CommandText = "SELECT Field1 FROM Table1";
using (var reader = command.ExecuteReader())
{
while(reader.Read())
{
// do something with the results
}
}
}
}
然后你可以从任何你喜欢的地方调用这个方法,让它成为静态的,从任何线程调用它。请记住,在连接上调用 Dispose
实际上不会关闭它。它会将它返回到连接池,以便可以重复使用。
关于c# - 在多线程服务器应用程序中访问 SQL DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2301614/