我正在尝试从DB中获取带有可选重载的数据来传递连接。我可以用两种方式做到这一点。
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 :(得分:0)
第一个是最佳选择
public DataTable GetData()
{
using (SqlConnection con = new SqlConnection("..."))
{
return GetData(con);
}
}
public DataTable GetData(SqlConnection con)
{
// fetch data
return dtData;
}
在这里你有面向对象的实现,提供特定的边界以及删除对象(使用语句到destory对象)都是一个很好的编程。