我几个月前在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