确定要使用的连接

时间:2013-03-12 04:20:45

标签: c#

在我的代码中,如果我有多个连接字符串,如何在不创建另一个ExecuteNonQuery()共享函数的情况下实现这一点,因为多重连接?我想用if if来判断一个类函数调用ExecuteNonQuery()是否应该使用特定的连接字符串进行开/关连接,我想重用ExecuteNonQuery()曾经有过不同的连接,有什么好主意吗?或者如果设计错了?

public void OpenConnection()
{
    try
    {
        string strSQLSvr = ConfigurationManager.ConnectionStrings["SQLConnStr"].ConnectionString;
        string strUsrSvr = ConfigurationManager.ConnectionStrings["usrMaint"].ConnectionString;

        conn = new SqlConnection(strSQLSvr);
        conn.Open();
    }
    catch (Exception ex)
    {
    }
}

public void CloseConnection()
{
    try {
        if (conn.State == ConnectionState.Open)
        {
            conn.Close();
        }
    }
    catch (Exception ex)
    {

    }

public void ExecuteNonQuery(string strSQL)
{
    try
    {
        OpenConnection();
        cmd.CommandText = strSQL;
        cmd.Connection = conn;
        cmd.ExecuteNonQuery();
    }
    catch (Exception ex)
    {

    }
    finally
    {
        CloseConnection();
    }
}

2 个答案:

答案 0 :(得分:1)

您可以使用以下设计

public class DatabaseConnection 
{

    private static DbConnection createSQlConnectionWithDB1()
    {
        // create a connection with DB1

        return new SqlConnection();
    }

    private static DbConnection createSQlConnectionWithDB2()
    {
       // create a connection with DB2
        return new SqlConnection();
    }


    public  static DbConnection createConnection(string typeOfConnection)
    {
        if (typeOfConnection.Equals("DB1"))
            return createSQlConnectionWithDB1();

        if (typeOfConnection.Equals("DB2"))
            return createSQlConnectionWithDB2();

        return null;
    }
}

答案 1 :(得分:0)

您可以根据连接字符串更改在OpenConnection()函数中创建不同的连接对象。

然后,您只需将连接对象传递给ExecuteNonQuery函数。

这样就可以了。