0

我试图从可选的重载数据库中获取数据来传递连接。我可以用两种方法做到这一点。使用最小代码重载方法

public DataTable GetData() 
{ 
    using (SqlConnection con = new SqlConnection("...")) 
    { 
     return GetData(con); 
    } 
} 

public DataTable GetData(SqlConnection con) 
{ 
    // fetch data 
    return dtData; 
} 

public DataTable GetData(SqlConnection con=null) 
{ 
    bool OpenCon = false; 
    if (con == null) 
    { 
     con = new SqlConnection("..."); 
     OpenCon = true; 
    } 
    try 
    { 
     // fetch data 
    } 
    finally 
    { 
     if (OpenCon) 
      con.Close(); 
    } 
    return dtData; 
} 

第一种情况似乎令人印象深刻。但是,每笔交易我都会收到很多方法。在第二种情况下,每种方法都需要编写大量代码,因为在这种情况下无法使用“使用”块。

其他事务如更新或删除的情况仍然更糟,因为我需要有另一个超载来传递事务。

有没有更好的方法?

回答

0

第一个1是最好的选择

public DataTable GetData() 
{ 
    using (SqlConnection con = new SqlConnection("...")) 
    { 
     return GetData(con); 
    } 
} 

public DataTable GetData(SqlConnection con) 
{ 
     // fetch data 
     return dtData; 
} 

这里有面向对象的实现,提供具体boundry以及去除对象(using语句来destory对象)都在那里这是一个很好的programmaing。