连接SQL数据库的最佳做法是什么?

时间:2014-01-26 07:43:21

标签: c# sql sql-server

我想知道连接数据库的好习惯是什么,我设计了一个连接类,并始终用它来连接SQL Server:

public  class Connection
{
    private SqlConnection conn;
    private static Connection myConnection; 

    private Connection()
    {
        try
        {
            conn = new SqlConnection("Data Source=.;Initial Catalog=Padideh;Integrated Security=True");
            conn.Open();
        }
        catch (Exception ex)
        {
            new ErrorHandler().ErrorLoging("", "Connection", ex.Message, "Cannt Connect To DB.");
        }

    }
    public static SqlConnection GetConnection
    {
        get 
        {
            if (myConnection == null || myConnection.conn.State==System.Data.ConnectionState.Closed)
            {
                myConnection = new Connection();
            }
            return myConnection.conn;
        }
    }

    ~Connection()
    {
        try
        {
            myConnection.conn.Close();
        }
        catch (Exception ex)
        {
            new ErrorHandler().ErrorLoging("", "~Connection", ex.Message, "Cannt Close DB Connection.");
        }
    }
}

这是一个单例类,我使用sqlConnection,我总是使用这个类连接到SQLserver,我想知道它是一个好方法,我可以在每个项目中使用它?什么是连接数据库的好习惯?

1 个答案:

答案 0 :(得分:4)

如图所示创建单身。

只需为每个使用情境创建一个连接 ,使用using可以更轻松地处理IDisposable性质,并依赖Connection Pooling - 已经处理了适当的细节。

总的来说,我认为单独使用单例会使连接处理 - 即使没有线程化 - 整体更难,没有/最小增益。

虽然我提倡使用DI / IoC(虽然一个简单的静态帮助方法可以在紧要关头),但这应该用于获取 new 连接每个使用上下文(或适当的生命周期),在完成后立即处理。