我幾個月前在MSDN上閱讀過一篇文章,最近開始使用下面的代碼片斷來執行ADO.NET代碼,但是我感覺它可能很糟糕。我是反應還是完全可以接受?ADO.NET - 糟糕的做法?
private void Execute(Action<SqlConnection> action)
{
SqlConnection conn = null;
try {
conn = new SqlConnection(ConnectionString);
conn.Open();
action.Invoke(conn);
} finally {
if (conn != null && conn.State == ConnectionState.Open) {
try {
conn.Close();
} catch {
}
}
}
}
public bool GetSomethingById() {
SomeThing aSomething = null
bool valid = false;
Execute(conn =>
{
using (SqlCommand cmd = conn.CreateCommand()) {
cmd.CommandText = ....
...
SqlDataReader reader = cmd.ExecuteReader();
...
aSomething = new SomeThing(Convert.ToString(reader["aDbField"]));
}
});
return aSomething;
}
除了傳遞給你的連接字符串外,'using'語句還沒有做什麼? – 2010-03-02 20:48:33