0

在我的代码中,如果我有多个连接字符串,由于多个连接,如何在不创建另一个 ExecuteNonQuery() 共享函数的情况下实现这一点?我正在考虑使用 if else 来确定类函数调用 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();
    }
}
4

2 回答 2

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;
    }
}
于 2013-03-12T04:30:30.320 回答
0

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

然后,您可以简单地将连接对象传递给ExecuteNonQuery函数。

这样就可以工作了。

于 2013-03-12T04:31:45.640 回答