我现在在网上搜索了一段时间。但是没有找到任何明确的答案来回答我的问题。在连接到数据库时我应该使用“使用”还是可以只使用 try-catch-finally?我的意思是:
我不知道是否应该在每次完成与数据库的交互时调用 dispose 方法,或者只是关闭连接。
static public List<Category> GetAll()
{
List<Category> CategoryList;
try
{
BaseDAO.Dbconn.Open();
BaseDAO.SetCommand(BaseDAO.CommandAction.Read, "SELECT * FROM Categories");
CategoryList = new List<Category>();
using (DbDataReader reader = BaseDAO.Dbcmd.ExecuteReader())
{
while (reader.Read())
{
int ID = reader.GetInt32(reader.GetOrdinal("CategoryID"));
string Name = reader.GetString(reader.GetOrdinal("CategoryName"));
string Description = reader.GetString(reader.GetOrdinal("Description"));
CategoryList.Add(new Category(ID, Name, Description));
}
}
return CategoryList;
}
catch (Exception ex)
{
BaseDAO.Dbconn.Dispose();
throw ex;
}
finally { BaseDAO.Dbconn.Close(); }
}
“Dbconnection”是静态的,不确定这是否也是一个好的解决方案......
我开始了解 ADO,只是想知道这类问题的最佳答案是什么。