cha*_*r m 3 c# iis ado.net asmx
由于IIS为每个请求分配一个工作线程,我打算创建新对象来为每个请求提供服务.我有两个问题:
创建新对象以服务每个请求是否有效?(甚至还有替代?)
它是创建新连接的线程安全,高效和最佳实践,并为每个请求打开和关闭它,如下所示:
using (MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["MySqlConnectionString"].ConnectionString)) { conn.Open(); MySqlCommand cmd = new MySqlCommand("SELECT password FROM Admin WHERE username='" + username + "'", conn); object dbp = cmd.ExecuteScalar(); conn.Close(); }
PS.此示例来自此站点.我使用oracle db.
谢谢:马蒂
当你这样做时,new SomeSqlConnection()
你实际上并不是每次都创建一个新的连接.由于数据库连接的创建成本很高,ADO.NET会保留连接池并从中创建连接.您也可以删除对该Close
方法的调用.这是您可以在每个请求中安全使用的代码段:
var connectionString = ConfigurationManager.ConnectionStrings["MySqlConnectionString"].ConnectionString;
using (var conn = new MySqlConnection(connectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "SELECT count(*) from some_table";
object result = cmd.ExecuteScalar();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1351 次 |
最近记录: |