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。