Diferencias entre ExecuteScalar, ExecuteReader y ExecuteNonQuery ASP.NET | ADO.NET | Rincón Qwerty

De seguro quienes se encuentran trabajando por primera vez en proyectos bajo el entorno ASP.NET, hemos tenido que realizar manipulación de datos a través de ADO.NET, conjunto de clases que permite ejecutar servicios de acceso a datos relacionales, por ejemplo hacia SQL Server. Haciendo uso del espaciado de nombre:

using System.Data.SqlClient;

Por lo que al realizar una consulta SQL bajo la clase SqlCommand, nos encontramos con las tres opciones mencionadas que podemos ocupar de acuerdo a la circunstancia de lo que queremos hacer, por lo que explicaré de manera simple en que consiste cada una de ellas y en que situación utilizarlas:

ExecuteScalar

Este método ejecuta la consulta y devuelve la primera columna de la primera fila del conjunto de resultados devuelto por la consulta. Las demás columnas o filas no se toman en cuenta. Por lo general es utilizado cuando queremos devolver el id del último registro ingresado a través de SELECT SCOPE_IDENTITY(); por lo que el valor lo podemos almacenar en una variable:

Int32 ultimoId = Convert.ToInt32(command.ExecuteScalar());

ExecuteReader

Este método envía la propiedad CommandText a Connection y crea un objeto SqlDataReader. Es utilizado para devolver todo el contenido de múltiples columnas y/o filas seleccionados por la Query.

 SqlDataReader resultados = command.ExecuteReader();

Mencionar además que podemos hacer uso de la propiedad HasRows para saber si es que la variable contiene una o más filas.

if (resultados.HasRows)
{
//hacer lo que deseen
}

De igual forma pueden recorrer las filas obtenidas desplazándose por los registros a través del método Read()

while (resultados.Read())
{
//hacer lo que deseen                    
}

ExecuteNonQuery

Este método ejecuta una instrucción de Transact-SQL en la conexión y devuelve el número de filas afectadas. Se utiliza para realizar operaciones sin resultados, por ejemplo consultar la estructura de una base de datos, crear objetos de base de datos como tablas o para cambiar la información de una base de datos a través de instrucciones UPDATE, INSERT o DELETE. Para ello, el valor devuelto corresponde al número de filas afectadas por el comando. Para los demás tipos de instrucciones, el valor devuelto es -1.

command.ExecuteNonQuery();
¿Te ha sido útil la publicación?
[ Votos: 3 | Promedio: 5 ]

Noticias Relacionadas

Tecnología | Tutoriales |

Exportar enlaces MEGA desde JDownloader a MegaDownloader

Lo más seguro, es que se encuentran descargando algún archivo, película u otro y la página de donde lo están haciendo automáticamente agrega todos los link directamente a JDownloader debido a Click’N’Load, pero nosotros queremos descargar Leer más…

Tecnología |

Ventajas y Desventajas de las Frecuencias Inalámbricas de 2.4GHz y 5GHz

La mayoria de los router que ofrecen las compañías proveedoras de Internet trabajan por defecto bajo la frecuencia 2.4 Ghz, ya que todos los dispositivos están preparados para ello y porque los equipos de 5 GHz Leer más…

Seguridad Infórmatica | Tecnología |

Protege y encripta tus archivos con VeraCrypt en Windows | Mac

Todos tenemos archivos, documentos, fotos y videos en nuestros equipos que no queremos compartir con nadie, ya que son demasiado importantes como para extraviarlos y que caigan en manos de desconocidos. Por ello, es de Leer más…