C#中使用Oracle连接的最佳实践

3
我们使用Oracle数据库连接,但是我们的类数据库访问没有dispose或close方法。这会影响应用程序的性能吗?我看到了这个例子:
   string oradb = "Data Source=ORCL;User Id=hr;Password=hr;";
   OracleConnection conn = new OracleConnection(oradb); // C#
   conn.Open();
   OracleCommand cmd = new OracleCommand();
   cmd.Connection = conn;
   cmd.CommandText = "select * from departments";
   cmd.CommandType = CommandType.Text;
   OracleDataReader dr = cmd.ExecuteReader();
   dr.Read();
   label1.Text = dr.GetString(0);
   conn.Dispose();

我意识到它打开连接然后关闭她。这样做是正确的吗?还有其他更好的方法吗?

我把我的连接保持打开状态,但最终被关闭了一段时间。我认为这样做是错的。你怎么看?


1
据我所知,最好的方法是使用 using 语句 - Soner Gönül
1个回答

10

使用Using语句处理可释放的对象,特别是任何类型的连接和数据读取器。

string oradb = "Data Source=ORCL;User Id=hr;Password=hr;";
using(OracleConnection conn = new OracleConnection(oradb))
using(OracleCommand cmd = new OracleCommand())
{
   conn.Open();
   cmd.Connection = conn;
   cmd.CommandText = "select * from departments";
   cmd.CommandType = CommandType.Text;
   using(OracleDataReader dr = cmd.ExecuteReader())
   {
       dr.Read();
       label1.Text = dr.GetString(0);
   }
}

在这里,您可以了解有关Using语句及其重要性的内容。关于连接和读取器,您应该使用using语句来封装对象,以确保在退出using块时一切都能正确关闭和处理,同时还需考虑异常情况。


理解。始终在 using 块内执行。肯定需要进行大量更改。谢谢 Steve。 - Fernando Arce

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接