该类正在使用连接池功能吗?-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数据适配器周围使用语句的意思,您能在这里发布吗?谢谢。使用语句用示例更新了答案。