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();

我意识到它打开了连接然后杀死了她。这是对的?还有其他更好的吗?

我将连接保持打开状态,然后关闭一段时间。我想就是这样。这太不对劲了?

4

1 回答 1

9

对一次性对象使用 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 块时,一切都已正确关闭和处置,以防出现异常

于 2014-05-05T14:18:11.747 回答