domingo, 2 de mayo de 2010

[ADO.NET] Lectura de una tabla

ADO.NET proporciona una serie de métodos diversos para acceder a la base de datos y realizar transacciones. En este artículo se mostrará cómo se pueden leer datos de una tabla. Previamente se parte de la base de que la parte de realizar una conexión ya es conocida y está implementada.

Uno de los métodos para acceder a la tabla es empleando proveedores de datos. Estos proveedores permiten conectarse a diferentes motores de base de datos (OJBC, Sql Server, MySQL, Oracle, etc) y ejecutar comandos SQL de la misma forma que si estuviésemos en el cliente del motor.

Para la lectura de una tabla, se proporciona al clase DataReader que únicamente permite leer los datos. A través de esa clase ejecutaremos un comando que hemos insertado previamente, desde el cuál indicaremos la orden de SQL correspondiente (si es de lectura, sólo puede ser una SELECT en principio). Por lo tanto, una vez abierta la conexión nos encontramos con el siguiente código:

string query = "SELECT nombre FROM EQUIPO";
SqlCommand command = new SqlCommand(query, Conexion.Instancia);

Al comando se le introduce la sentencia que se desea ejecutar junto con la conexión que previamente hemos abierto. En el código de arriba, suponemos que tenemos una clase singleton que gestiona toda la conexión y que el SqlConnection lo obtenemos a través de Conexion.Instancia. A continuación el siguiente paso es ejecutar el comando y obtener las filas que se han leído, para lo cual usaremos el DataReader:

SqlDataReader sqlDataReader = command.ExecuteReader();

El comando al ejecutarse devuelve un puntero a los datos leídos, como si fuera un simple fichero que se desea abrir. Por ello el dataReader incorpora unos métodos similares. Para obtener los datos, usaremos el siguiente método:

while (sqlDataReader.Read())
{
//sqlDataReader[0];
//sqlDataReader[1];
}

Con este bucle seguirá leyendo hasta que finalice la consulta. Para obtener los datos accedemos a las sucesivas posiciones de sqlDataReader, donde cada posición representa una columna leída. Es de señalar que devuelve tipo object, por lo que hay que hacer una conversión explícita al tipo deseado.

Por último no te olvides de cerrar la conexión :)

No hay comentarios:

Publicar un comentario