Hace ya varios días que me preguntaron de esto, de hecho ayer un amigo de la escuela y como en los cursos de ADO.NET que tome en mis vacaciones lo recordé, pues ak un pequeño resumen de cómo hacerlo.
La parte más importante o más pesada cuando realizamos un acceso a una base de datos nos la encontramos cuando hacemos la conexión a nuestra base de datos, sin embargo creo que esta tarea es simple siempre y cuando la hagamos de manera correcta, quizá diga que es pesada ya que es la que más recursos del sistema del sistema consume, pero para hacerlo bien debemos tomar en cuenta ciertas cosas:
- La conexión debe realizarse, siempre que esté dentro de lo posible con los proveedores de acceso nativos, esto porque son más rápidos.
- La conexión debe de abrirse lo más tarde posible, y de ser posible definir todas las variables que podamos antes de realizar la conexión.
- La conexión debe cerrarse lo antes posible, siempre y cuando no tengamos la necesidad de usarla posteriormente.
Estas recomendaciones no son exactamente normas de acceso a datos, pero digamos que si las importantes en cuanto al acceso se refiere ya que depende de lo que queramos hacer para tomar una decisión y aplicar una u otra de estas recomendaciones.
En aquellas ocasiones en que sea necesario estar trabajando con la aplicación en estado conectado a la base de datos, lo que vamos a usar en un DataReader.
¿Qué hace un DataReader?
El objeto DataReader recupera un conjunto de valores llenando un pequeño búfer de datos. Si los objetos que hay en el búfer se acaban, el objeto DataReader regresará a la base de datos para recuperar más registros, por lo tanto su el servicio de SQL Server esta detenido o el de alguno de nuestros orígenes de datos esto provocaría un error.
Pero basta de rollos vamos a ver un ejemplo, pero antes necesitamos una base de datos, si tiene una perfecto, sino aquí un post de cómo crear una base de datos con SQL Server, ya que tenemos nuestra base ahora hacemos lo siguiente:
Creamos una aplicación para Windows a la que llamaremos AccesoConectado, como se ve en la figura:
![AccesoConectado1]()
Dentro ya de nuestro formulario, vamos a trabajar con un DataGridView para mostrar nuestros datos y un botón para mostrarlos, entonces nuestro formulario quedaría así:
![AccesoConectado2]()
Ahora vamos agregar un origen de datos a nuestro proyecto para ello damos clic en la pestaña Datos->Agregar nuevo origen de datos lo que hacemos ak es solo utilizar el asistente, así como guardar nuestra cadena de conexión que es la que utilizaremos.
Ya con la base en el proyecto, ahora trabajaremos con ella desde código
, y es aquí en donde iniciamos con el método LeerBaseDeDatos y el código es el siguiente:
public void leerBaseDeDatos()
{
//abrimos la base de datos
string cadenConexion = "Data Source=.\\SQLEXPRESS;AttachDbFilename='C:\\Users\\nor\\Desktop\\Curso UNAM\\AccesoConectado\\AccesoConectado\\NORTHWND.MDF';" +
"Integrated Security=True;User Instance=True";
conexionBD = new SqlConnection(cadenConexion);
conexionBD.Open();
//creamos una consulta
string Consulta = "SELECT LastName, FirstName FROM Employees";
Orden = new SqlCommand(Consulta, conexionBD);
//ExecuteReader Hacela consulta y devuelve un SqlDataAdapter
Lector = Orden.ExecuteReader();
//llamamos siempre al método Read antes de aacedera los datos
if (Lector.Read())
{
//asignamos al gridview
miData = new DataTable();
miData.Load(Lector);
dataGridView1.DataSource = miData;
}
//llamamos siempre al close una vez finalizada la lectura
Lector.Close();
}
Como se pueden dar cuenta, en este método hacemos la conexión a nuestra base, realizamos una consulta sencilla, aplicamos el ExecuteReader que nos devuelve un SqlAdapter, llenamos un data table y lo asignamos a nuestro GridView.
Ahora solo un método más para cerrar nuestro lector y nuestra conexión esto una vez que ya no usamos nuestra base de datos. El método se llama CerrarConexion y el código es este:
public void CerrarConexion()
{
//cerramos nuestrs conexion cuando ya no le necesitemos
if (Lector != null)
Lector.Close();
if (conexionBD != null)
conexionBD.Close();
}
por último dentro de nuestro evento clic de nuestro botón mandamos llamar estos métodos, aplicando el control de excepciones, y esto queda así:
public void CerrarConexion()
{
//cerramos nuestrs conexion cuando ya no le necesitemos
if (Lector != null)
Lector.Close();
if (conexionBD != null)
conexionBD.Close();
}
Ahora solo resta crear una solución del proyecto, si todo va bien como parece, ejecutamos y el resultado al dar clic en el botón es algo como lo que se ve en la siguiente figura:
![Dibujo1]()
Con esto tenemos ya un acceso de datos y con el DataReader podemos manipular de la misma manera manipular los datos, pero esto lo veremos en otro ejemplo. Aquí el archivo con el código completo.
Acceso Conectado a una Base de Datos
Saludos!!

Comentarios recientes