Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2010, 16:03
Avatar de jose_desa
jose_desa
 
Fecha de Ingreso: marzo-2010
Mensajes: 19
Antigüedad: 14 años, 1 mes
Puntos: 0
Exclamación C# (sharp), Duda con Connection.Open() y .Close() para acceder a una base de datos

Por que en el siguiente codigo:

Código C sharp:
Ver original
  1. OleDbCommandBuilder MiBase=new OleDbCommandBuilder();
  2. DataTable Tabla=new DataTable();
  3. DataAdapter adaptador=new DataAdapter();
  4. OleDbConnection conector=new OleDbConnection();
  5. conector.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "+Application.StartupPath+@"\base.mdb";
  6.  
  7. void conectar()
  8. {
  9. adaptador.SelectCommand.Connection=conector;
  10. conector.open(); //<--------------------- se abre la coneccion
  11. adaptador.SelectCommand.CommandText="Select * from Tabla";
  12. MiBaseDataAdapter=adaptador;
  13. Tabla.Clear();
  14. adaptador.Fill(Tabla);
  15. conector.close(); //<------------------------ se cierra la coneccion
}
si yo quito las instruccion de que estan señanadas con //<---
que se supone que abren y cierran la coneccion a la base de datos no afecta aparentemente en nada puedo seguir viendo los registros que estan en mi tabla en acess, Modificandolos, agregando nuevos registros, eliminandoloes, etc. ??


tambien lo hice de esta forma y tampoco afecta

Código C sharp:
Ver original
  1. String archivodb = ("Provider=Microsoft.Jet.OLEDB.4.0;; Data Source="+ Application.StartupPath+@"\Base\BaseDatos.mdb");
  2. string sql = "Select Num_control, Nombre, Apellido_Paterno, Apellido_Materno, Especialidad  From Alumnos ORDER BY Num_control ASC";
  3. string respsql = "Select Num_control, Nombre, Apellido_Paterno, Apellido_Materno, Especialidad  From Alumnos ORDER BY Num_control ASC";
  4. OleDbConnection conector;
  5. OleDbDataAdapter adaptador;
  6.         OleDbCommandBuilder actualizardb;
  7.         DataTable tabla;
  8.         DataRow renglontabla;
  9.  
  10. public void conectar()//funcion que se manda a llamar cada vez que se nesesite acceder a la base de datos
  11.         {
  12.             conector = new OleDbConnection(archivodb);
  13.          //   conector.Open();
  14.             adaptador = new OleDbDataAdapter(sql, conector);
  15.             actualizardb = new OleDbCommandBuilder(adaptador);
  16.             tabla = new DataTable();
  17.         //conector.Close();
  18.            
  19.         }

Por que no es nesesario tener las instruccion .open() y .close() ?
Si la razon es por que no se nesesita quisiaera ver si por favor me podrian decir en que casos si se nesesita abrir el objeto OleDbConnection

De antemano muchas gracias

Estoy programando en Visual Studio 2008 en C sharp y mi base de datos esta hecha en Access 2003.

Última edición por jose_desa; 25/07/2010 a las 14:06 Razón: complementar