SqlDataAdapter, SqlDataReader Formas de conseguir datos

Cada vez que hago un desarrollo se me olvida como enlazar datos un gridview y cada vez que busco en internet hay diversas formas de hacerlo. Veamos algunas.

Primero la cadena de coneccion:

	
string CadenaConn4 = "Persist Security Info=False;User ID=MiUsuario;Password=MiPassword;Initial Catalog=MIBASE;Server=100.199.99.99";

Cargamos los metodos en el page load.  Puede hacerlo en el clic de un botón, esto son solo ejemplos.

	
protected void Page_Load(object sender, EventArgs e)
{
   EnlazarDatosSQLDataAdapter();
   EnlazarDatosSQLDataReader();
}

Y abajo hay dos formas de cargar los gridview. Primero mediante SqlDataAdapter:

	
private void EnlazarDatosSQLDataAdapter()
{
   string Consulta = "SELECT * FROM [dbo].[MI_TABLA]";
   using (SqlConnection conn = new SqlConnection(CadenaConn4))
   {
	using (SqlCommand cmd = new SqlCommand(Consulta))
	{ 
 	   cmd.Connection = conn;
	   conn.Open();
	   SqlDataAdapter da = new SqlDataAdapter(cmd);
	   DataTable dt = new DataTable();
	   da.Fill(dt);
	   GridView1.DataSource = dt;
	   GridView1.DataBind();
	}
   }
}

Y este es el metodo con SqlDataReader:

	
private void EnlazarDatosSQLDataReader()
{
   string Consulta = "SELECT * FROM [dbo].[MI_TABLA]";
   using (SqlConnection conn = new SqlConnection(CadenaConn4))
   {
       using (SqlCommand cmd = new SqlCommand(Consulta))
       {
	 cmd.Connection = conn;
	 conn.Open();
	 GridView2.DataSource = cmd.ExecuteReader();
	 GridView2.DataBind();
	 conn.Close();
	}
   }
}

No hay implementación para tratamiento de errores. Esto es lo mas basico para cargar un GridView.

Y algunas observaciones, tomadas de aqui.

El siguiente texto es una traduccion del sitio del link de arriba.

SqlDataReader:

Mantiene abierta la conexión hasta que se haya terminado (no se olvide de cerrarla).
Normalemente sólo se puede repetir una vez.
No es tan útil para actualizar la base de datos.

Por otro lado:

Sólo tiene un registro en la memoria a la vez, más que todo un conjunto de resultados (esto puede ser enorme).
Es de lo más rápido que puede obtener para una iteración.
Permite que inicie cuanto antes, los resultados del procesamiento.

SqlDataAdapter / DataSet

Permite cerrar la conexión tan pronto se hace la carga de datos, e incluso puede cerrarla de forma automática.
Todos los resultados están disponibles en la memoria.
Puede iterar sobre ella tantas veces como sea necesario, o incluso buscar un registro específico por el índice.
Tiene algunas de las facultades para la actualización de la base de datos.


A costa de:
Uso mucho mayor de memoria.
Tienes que esperar hasta que todos los datos se cargen antes de usar cualquiera de ellos.

Así que realmente depende de lo que estás haciendo, pero yo tiendo a preferir un DataReader hasta que necesite algo que sólo se apoya en un conjunto de datos. SqlDataReader es perfecto para el caso de acceso a datos común de unión a una red de sólo lectura.

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s