该类正在使用连接池功能吗?-MSSQL 2008 R2-ASP.net 4.0
我浏览了网页,但我不能完全理解连接池的事情。这是我的查询执行类。每个查询都由这个类执行 多谢各位该类正在使用连接池功能吗?-MSSQL 2008 R2-ASP.net 4.0,asp.net,sql-server,class,database-connection,connection-pooling,Asp.net,Sql Server,Class,Database Connection,Connection Pooling,我浏览了网页,但我不能完全理解连接池的事情。这是我的查询执行类。每个查询都由这个类执行 多谢各位 using System; using System.Collections.Generic; using System.Collections; using System.Linq; using System.Web; using System.Data.Sql; using System.Data.SqlClient; using System.Data; using System.IO; p
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Web;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data;
using System.IO;
public class DbConnection
{
public static string srConnectionString = "server=localhost;database=mydb;uid=sa;pwd=mypw;";
public DbConnection()
{
}
public static DataSet db_Select_Query(string strQuery)
{
DataSet dSet = new DataSet();
try
{
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
connection.Open();
SqlDataAdapter DA = new SqlDataAdapter(strQuery, connection);
DA.Fill(dSet);
}
return dSet;
}
catch (Exception)
{
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
if (srConnectionString.IndexOf("select Id from tblAspErrors") != -1)
{
connection.Open();
strQuery = strQuery.Replace("'", "''");
SqlCommand command = new SqlCommand("insert into tblSqlErrors values ('" + strQuery + "')", connection);
command.ExecuteNonQuery();
}
}
return dSet;
}
}
public static void db_Update_Delete_Query(string strQuery)
{
try
{
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(strQuery, connection);
command.ExecuteNonQuery();
}
}
catch (Exception)
{
strQuery = strQuery.Replace("'", "''");
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
connection.Open();
SqlCommand command = new SqlCommand("insert into tblSqlErrors values ('" + strQuery + "')", connection);
command.ExecuteNonQuery();
}
}
}
}
是,根据
连接字符串创建连接池。为了防止内存泄漏,还应该在SqlCommand
和SqlDataAdapter
对象周围使用using
语句
将为每个唯一的连接字符串创建一个连接池。当
创建池时,将创建多个连接对象并将其添加到
池,以满足最小池大小要求。
根据需要将连接添加到池中,直到最大池数
指定的大小(默认值为100)。连接被释放回来
当它们被关闭或处置时,进入池中
使用语句的示例:
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
connection.Open();
using(SqlDataAdapter DA = new SqlDataAdapter(strQuery, connection))
{
DA.Fill(dSet);
}
}
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
if (srConnectionString.IndexOf("select Id from tblAspErrors") != -1)
{
connection.Open();
strQuery = strQuery.Replace("'", "''");
using(SqlCommand command = new SqlCommand("insert into tblSqlErrors values ('" + strQuery + "')", connection))
{
command.ExecuteNonQuery();
}
}
}
是,根据连接字符串创建连接池。为了防止内存泄漏,还应该在SqlCommand
和SqlDataAdapter
对象周围使用using
语句
将为每个唯一的连接字符串创建一个连接池。当
创建池时,将创建多个连接对象并将其添加到
池,以满足最小池大小要求。
根据需要将连接添加到池中,直到最大池数
指定的大小(默认值为100)。连接被释放回来
当它们被关闭或处置时,进入池中
使用语句的示例:
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
connection.Open();
using(SqlDataAdapter DA = new SqlDataAdapter(strQuery, connection))
{
DA.Fill(dSet);
}
}
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
if (srConnectionString.IndexOf("select Id from tblAspErrors") != -1)
{
connection.Open();
strQuery = strQuery.Replace("'", "''");
using(SqlCommand command = new SqlCommand("insert into tblSqlErrors values ('" + strQuery + "')", connection))
{
command.ExecuteNonQuery();
}
}
}
我总是使用相同的字符串,所以我想我有一个池。另外,我并没有理解您在sql命令和sql数据适配器周围使用语句的意思,您能在这里发布吗?谢谢。用语句更新了答案的示例。我总是使用相同的字符串,所以我想我有一个池。另外,我并没有理解您在sql命令和sql数据适配器周围使用语句的意思,您能在这里发布吗?谢谢。使用语句用示例更新了答案。