SlideShare una empresa de Scribd logo
1 de 20
OBJETO SQLCOMMAND
DEFINICIÓN:
SqlCommand representa un procedimiento almacenado o una instrucción
de Transact-SQL que se ejecuta en una base de datos de SQL Server.
Un objeto SqlCommand se utiliza cuando necesitamos ejecutar un tipo de
sentencia Sql a la base de datos (estos tipos pueden ser: Delete, Update,
Insert o Select).
Cuando se crea una instancia de SqlCommand, las propiedades de
lectura y escritura se establecen en sus valores iniciales.
SqlCommand proporciona las siguientes propiedades y métodos de
ejecución de comandos en una base de datos de SQL Server:
PROPIEDADES:
NOMBRE DESCRIPCIÓN
ColumnEncryptionSetting Obtiene o establece la configuración del cifrado de columnas para este comando.
CommandText Obtiene o establece la instrucción de Transact-SQL, el nombre de tabla o el
procedimiento almacenado que se ejecutan en el origen de
datos.(Invalida DbCommand.CommandText).
CommandTimeout Obtiene o establece el tiempo de espera antes de terminar el intento de ejecutar un
comando y generar un error.(Invalida DbCommand.CommandTimeout).
CommandType Obtiene o establece un valor que indica cómo se interpreta la
propiedad CommandText.(Invalida DbCommand.CommandType).
Connection Obtiene o establece la interfaz SqlConnection que usa esta instancia
de SqlCommand.
Container Obtiene IContainer que contiene Component.(Heredado de Component).
DesignTimeVisible Obtiene o establece un valor que indica si el objeto de comando debe estar visible
en un control del Diseñador de Windows
Forms.(Invalida DbCommand.DesignTimeVisible).
Notification Obtiene o establece un valor que especifica el
objeto SqlNotificationRequest enlazado a este comando.
NotificationAutoEnlist Obtiene o establece un valor que indica si la aplicación debe recibir
automáticamente notificaciones de consulta de un
objeto SqlDependency común.
Parameters Obtiene la estructura SqlParameterCollection.
Site Obtiene o establece la ISite de la Component.(Heredado de Component).
Transaction Obtiene o establece la transacción SqlTransaction en la que se
ejecuta SqlCommand.
UpdatedRowSource Obtiene o establece la manera en que se aplican los resultados del comando
a DataRow cuando lo utiliza el
método Update de DbDataAdapter.(Invalida DbCommand.UpdatedRowSource
).
MÉTODOS:
NOMBRE DESCRIPCIÓN
BeginExecuteNonQuery() Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del
procedimiento almacenado que describeSqlCommand.
BeginExecuteNonQuery(AsyncCallback, Object) Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del
procedimiento almacenado que describe SqlCommand, dados un procedimiento
de devolución de llamada e información de estado.
BeginExecuteReader() Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del
procedimiento almacenado que describe SqlCommand y recupera uno o varios
conjuntos de resultados del servidor.
BeginExecuteReader(AsyncCallback, Object) Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del
procedimiento almacenado que describeSqlCommand y recupera uno o varios
conjuntos de resultados del servidor, dados un procedimiento de devolución de
llamada e información de estado.
BeginExecuteReader(AsyncCallback, Object,
CommandBehavior)
Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del
procedimiento almacenado que describeSqlCommand, utilizando uno de los
valores de CommandBehavior y recuperando uno o varios conjuntos de
resultados del servidor, a partir del procedimiento de devolución de llamada e
información de estado dados.
BeginExecuteReader(CommandBehavior) Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del procedimiento
almacenado que describe SqlCommand utilizando uno de los valores
de CommandBehavior.
BeginExecuteXmlReader() Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del procedimiento
almacenado que describe SqlCommand y devuelve los resultados como un
objeto XmlReader.
BeginExecuteXmlReader(AsyncCallback, Object) Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del procedimiento
almacenado que describe SqlCommand y devuelve los resultados como un
objeto XmlReader a través de un procedimiento de devolución de llamada.
Cancel() Intenta cancelar la ejecución de un SqlCommand.(Invalida DbCommand.Cancel()).
Clone() Crea un nuevo objeto SqlCommand que es una copia de la instancia actual.
CreateObjRef(Type) Crea un objeto que contiene toda la información relevante necesaria para generar a un
proxy que se utiliza para comunicarse con un objeto remoto.(Heredado
de MarshalByRefObject).
CreateParameter() Crea una nueva instancia de un objeto SqlParameter.
Dispose() Libera todos los recursos que usa Component.(Heredado de Component).
EndExecuteNonQuery(IAsyncResult) Finaliza la ejecución asincrónica de una instrucción de Transact-SQL.
EndExecuteReader(IAsyncResult) Finaliza la ejecución asincrónica de una instrucción de Transact-SQL y devuelve el
objeto SqlDataReadersolicitado.
EndExecuteXmlReader(IAsyncResult) Finaliza la ejecución asincrónica de una instrucción de Transact-SQL y devuelve los
datos solicitados como XML.
Equals(Object) Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).
ExecuteNonQuery() Ejecuta una instrucción de Transact-SQL en la conexión y devuelve el número de
filas afectadas.(Invalida DbCommand.ExecuteNonQuery()).
ExecuteNonQueryAsync() Una versión asincrónica de ExecuteNonQuery, que ejecuta una instrucción SQL en
un objeto de conexión.
Invoca ExecuteNonQueryAsync con CancellationToken.None.(Heredado
de DbCommand).
ExecuteNonQueryAsync(CancellationToken) Versión asincrónica de ExecuteNonQuery, que ejecuta una instrucción de Transact-
SQL con la conexión y devuelve el número de filas afectadas. Token de cancelación
que se puede usar para solicitar que se abandone la operación antes de que
transcurra el tiempo de espera del comando. Las excepciones se mostrarán a
través del objeto Task devuelto.
(Invalida DbCommand.ExecuteNonQueryAsync(CancellationToken)).
ExecuteReader() Envía la propiedad CommandText a Connection y crea un
objeto SqlDataReader.
ExecuteReader(CommandBehavior) Envía CommandText a Connection y crea
un SqlDataReader mediante uno de los valores
de CommandBehavior.
ExecuteReaderAsync() Una versión asincrónica de ExecuteReader, que envía la
propiedad CommandText a la propiedad Connection y
compila SqlDataReader. Las excepciones se mostrarán a través del
objeto Task devuelto.
ExecuteReaderAsync(CancellationToken) Una versión asincrónica de ExecuteReader, que envía la
propiedad CommandText a la propiedad Connection y
compila SqlDataReader.
Token de cancelación que se puede usar para solicitar que se
abandone la operación antes de que transcurra el tiempo de espera
del comando. Las excepciones se mostrarán a través del objeto Task
devuelto.
ExecuteReaderAsync(CommandBehavior) Versión asincrónica de ExecuteReader, que envía la
propiedad CommandText a la propiedad Connection y
compila SqlDataReader. Las excepciones se mostrarán a través del
objeto Task devuelto.
ExecuteReaderAsync(CommandBehavior,
CancellationToken)
Versión asincrónica de ExecuteReader, que envía la
propiedad CommandText a la propiedad Connection y
compila SqlDataReader
Token de cancelación que se puede usar para solicitar que se abandone la
operación antes de que transcurra el tiempo de espera del comando. Las
excepciones se mostrarán a través del objeto Task devuelto.
ExecuteScalar() 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 tienen en cuenta.(Invalida DbCommand.ExecuteScalar()).
ExecuteScalarAsync() Una versión asincrónica de ExecuteScalar, que ejecuta la consulta y
devuelve la primera columna de la primera fila del conjunto de resultados
devuelto por la consulta. Se omiten todas las demás columnas y filas.
Invoca ExecuteScalarAsync con CancellationToken.None.(Heredado
de DbCommand).
ExecuteScalarAsync(CancellationToken) Versión asincrónica de ExecuteScalar que ejecuta la consulta
asincrónicamente y devuelve la primera columna de la primera fila
del conjunto de resultados que devuelve la consulta. Las demás
columnas o filas no se tienen en cuenta.
Token de cancelación que se puede usar para solicitar que se
abandone la operación antes de que transcurra el tiempo de espera
del comando. Las excepciones se mostrarán a través del objeto Task
devuelto.(Invalida DbCommand.ExecuteScalarAsync(CancellationTo
ken)).
ExecuteXmlReader() Envía CommandText a Connection y crea un objeto XmlReader.
ExecuteXmlReaderAsync() Una versión asincrónica de ExecuteXmlReader, que envía la
propiedad CommandText a la propiedadConnection y compila un
objeto XmlReader.
Las excepciones se mostrarán a través del objeto Task devuelto.
ExecuteXmlReaderAsync(CancellationToken) Una versión asincrónica de ExecuteXmlReader, que envía la
propiedad CommandText a la propiedad Connection y compila un
objeto XmlReader.
Token de cancelación que se puede usar para solicitar que se
abandone la operación antes de que transcurra el tiempo de espera
del comando. Las excepciones se mostrarán a través del objeto Task
devuelto.
GetHashCode() Sirve como la función hash predeterminada. (Heredado de Object).
GetLifetimeService() Recupera el objeto de servicio de duración actual que controla la directiva de
duración de esta instancia.(Heredado de MarshalByRefObject).
GetType() Obtiene el Type de la instancia actual.(Heredado de Object).
InitializeLifetimeService() Obtiene un objeto de servicio de duración para controlar la directiva de duración
de esta instancia.(Heredado de MarshalByRefObject).
Prepare() Crea una versión preparada del comando en una instancia de SQL
Server.(Invalida DbCommand.Prepare()).
ResetCommandTimeout() Restablece el valor predeterminado de la propiedad CommandTimeout.
ToString() Devuelve un String que contiene el nombre de la Component, si existe. Este
método no se debe invalidar.(Heredado de Component).
EJEMPLOS:
CREAR UN OBJETO SQLCOMMAND:
De manera similar a otros objetos C #, crea una instancia de un objeto SqlCommand a través de la nueva
declaración de instancia, de la siguiente manera:
SqlCommand cmd = new SqlCommand ("seleccionar CategoryName from Categories", conn);
La línea anterior es típica para crear instancias de un objeto SqlCommand. Toma un parámetro de cadena que
contiene el comando que desea ejecutar y una referencia a un objeto SqlConnection. SqlCommand tiene algunas
sobrecargas, que verá en los ejemplos:
CONSULTAR DATOS:
Al usar un comando de selección SQL, recuperas un conjunto de datos. Para lograr esto con un objeto SqlCommand,
se usa el método ExecuteReader, que devuelve un objeto SqlDataReader. El siguiente ejemplo muestra cómo usar el
objeto SqlCommand para obtener un objeto SqlDataReader:
//Creamos una instancia de un nuevo comando con una consulta y conexión:
SqlCommand cmd = new SqlCommand ("seleccionar CategoryName from Categories", conn);
//Llamamos al lector de ejecución para obtener resultados de consulta:
SqlDataReader rdr = cmd.ExecuteReader ();
En el ejemplo anterior, instanciamos un objeto SqlCommand, pasando la cadena de comando y el objeto de conexión
al constructor. Luego obtenemos un objeto SqlDataReader llamando al método ExecuteReader del objeto
SqlCommand, cmd.
INSERTAR DATOS:
Para insertar datos en una base de datos, usamos el método ExecuteNonQuery del objeto SqlCommand. El
siguiente código muestra cómo insertar datos en una tabla de base de datos:
// Preparamos el comando String
String string insertString = @ "
insertar en Categorías
(CategoryName, descripción)
valores ('Varios', 'Lo que no se ajusta en otro lado') ";
//Creamos una instancia de un nuevo comando con una consulta y conexión
SqlCommand cmd = new SqlCommand (insertString, conn);
//Llamamos a ExecuteNonQuery para enviar el comando
cmd.ExecuteNonQuery ();
Para ejecutar este comando, simplemente llamamos al método ExecuteNonQuery en la instancia de SqlCommand,
cmd.
ACTUALIZACIÓN DE DATOS:
El método ExecuteNonQuery también se usa para actualizar datos. El siguiente código muestra cómo actualizar los datos:
//Preparamos el comando string
String string updateString = @ "
actualizar Categorías
establecer CategoryName = 'Otro'
donde CategoryName = 'Miscellaneous’ “;
//Creamos una instancia de un nuevo comando con solo texto de comando
SqlCommand cmd = new SqlCommand (updateString);
// Establecemos la propiedad Connection
cmd.Connection = conn;
// Llamamos a ExecuteNonQuery para enviar comandos
cmd.ExecuteNonQuery ();
Nuevamente, colocamos el comando SQL en una variable de cadena, pero esta vez usamos un constructor SqlCommand diferente
que toma solo el comando. Asignamos el objeto SqlConnection, conn, a la propiedad Connection del objeto SqlCommand, cmd.
El método ExuteNonQuery realiza el comando de actualización.
ELIMINAR DATOS:
También puede eliminar datos utilizando el método ExecuteNonQuery. El siguiente ejemplo muestra cómo eliminar
un registro de una base de datos con el método ExecuteNonQuery:
// Preparamos el comando string
String deleteString = @ "
eliminar de Categorías
donde CategoryName = 'Otro' ";
//Creamos una instancia de un nuevo comando
SqlCommand cmd = new SqlCommand ();
// Establecemos la propiedad CommandText
cmd.CommandText = deleteString;
// Establecemos la propiedad Connection
cmd.Connection = conn;
// Llamamos a ExecuteNonQuery para enviar comandos
cmd.ExecuteNonQuery ();
Este ejemplo usa el constructor SqlCommand sin parámetros. En cambio, explicity establece las propiedades
CommandText y Connection del objeto SqlCommand, cmd.
La llamada al método ExecuteNonQuery envía el comando a la base de datos.
OBTENER VALORES INDIVIDUALES:
A veces, todo lo que necesita de una base de datos es un valor
único, que puede ser un recuento, suma, promedio u otro valor
agregado de un conjunto de datos. Realizar un ExecuteReader y
calcular el resultado en su código no es la forma más eficiente de
hacerlo. La mejor opción es dejar que la base de datos realice el
trabajo y devuelva solo el valor que necesita. El siguiente ejemplo
muestra cómo hacer esto con el método ExecuteScalar:
//Creamos una instancia de un nuevo comando
SqlCommand cmd = new SqlCommand ("select count (*) from
Categories", conn);
//Llamamamos a ExecuteNonQuery para enviar comandos
Int count = ( int ) cmd.ExecuteScalar ();
La consulta en el constructor SqlCommand obtiene el recuento de
todos los registros de la tabla Categorías. Esta consulta solo
devolverá un valor único. El método ExecuteScalar devuelve este
valor. Como el tipo de devolución de ExecuteScalar es type object,
utilizamos un operador de conversión para convertir el valor a int.
RESUMEN:
Un objeto SqlCommand le permite consultar y enviar comandos a una base de datos. Tiene métodos que
están especializados para diferentes comandos. El método ExecuteReader devuelve un objeto
SqlDataReader para ver los resultados de una consulta de selección. Para insertar, actualizar y eliminar
comandos SQL, utiliza el método ExecuteNonQuery. Si solo necesita un único valor agregado de una
consulta, ExecuteScalar es la mejor opción.
SqlCommand define una propiedad de colección llamada Parameters, en esta propiedad se almacenan los
valores para los parámetros utilizados en una instrucción o consulta de SQL que ha sido asignada como
cadena de caracteres a la propiedad CommandText de un SqlCommand. Estos parámetros son del tipo
SqlParameter y están directamente relacionados con las variables utilizadas en las instrucciones o
consultas T-SQL.
La ventaja de utilizar las variables de T-SQL en la cadena de la consulta, nos permiten tener una cadena de
caracteres uniforme y similar a lo que se usa directamente con T-SQL, estas variables también pueden ser
los parámetros de un procedimiento almacenado.
RECOMENDACIONES:
Los comandos se emiten en las bases de datos para realizar acciones en almacenes de datos e incluir cualquier
instrucción que se pueda emitir en una base de datos. Puede utilizar las clases OleDbCommand o SqlCommand
para obtener un comando para su almacén de datos; OleDbCommand puede ser específica del almacén de datos.
Con ADO, puede ejecutar comandos a través de los objetos Command, Connection o Recordset. En ADO.NET,
sólo los objetos Command (SqlCommand u OleDbCommand) ejecutan comandos.
CONCLUSIONES:
SqlCommand trata con bases de datos. Ejecuta comandos SQL en una base de datos. Envía un comando SQL a
una base de datos especificada por un objeto SqlConnection.
Luego llama a los métodos de instancia para aplicar físicamente el comando a la base de datos.
El tipo SqlCommand tiene un constructor parametrizado público y se puede usar con uno o más argumentos. El
primer parámetro especifica la declaración de SQL. El segundo parámetro es SqlConnection. El tercer parámetro
es SqlTransaction.
APRECIACIÓN DEL EQUIPO:
Un objeto SqlCommand nos permite especificar qué tipo de interacción desea realizar con una base de datos. Por
ejemplo, puede seleccionar, insertar, modificar y eliminar comandos en filas de datos en una tabla de base de
datos. El objeto SqlCommand se puede usar para admitir escenarios de administración de datos desconectados.
SqlCommand tiene un constructor y puede especificar su conexión y el texto SQL.

Más contenido relacionado

La actualidad más candente

Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoFYaskelly Yedra
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre ObjetosEmilio Aviles Avila
 
Decision making in JAVA
Decision making in JAVADecision making in JAVA
Decision making in JAVAHamna_sheikh
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansDaniel Gómez
 
Diseño de Interfaces Mediante .NET
Diseño de Interfaces Mediante .NETDiseño de Interfaces Mediante .NET
Diseño de Interfaces Mediante .NETcbrith14
 
Diagramas de clases y aplicaciones JAVA en NetBeans 6.9.1
Diagramas de clases y aplicaciones  JAVA en NetBeans 6.9.1Diagramas de clases y aplicaciones  JAVA en NetBeans 6.9.1
Diagramas de clases y aplicaciones JAVA en NetBeans 6.9.1Henry Upla
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesAlvaro Enrique Ruano
 
Model view controller (mvc)
Model view controller (mvc)Model view controller (mvc)
Model view controller (mvc)M Ahsan Khan
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Maria Garcia
 
Asociaciones entre objetos-generalización especialización
Asociaciones entre objetos-generalización especializaciónAsociaciones entre objetos-generalización especialización
Asociaciones entre objetos-generalización especializaciónUVM
 

La actualidad más candente (20)

Greenfoot 1
Greenfoot 1Greenfoot 1
Greenfoot 1
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
Objeto SqlDataReader
Objeto SqlDataReaderObjeto SqlDataReader
Objeto SqlDataReader
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre Objetos
 
Decision making in JAVA
Decision making in JAVADecision making in JAVA
Decision making in JAVA
 
Sesion12-Componentes AWT
Sesion12-Componentes AWTSesion12-Componentes AWT
Sesion12-Componentes AWT
 
MVC
MVCMVC
MVC
 
Estructura repetitiva for y while
Estructura repetitiva for y whileEstructura repetitiva for y while
Estructura repetitiva for y while
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeans
 
Diseño de Interfaces Mediante .NET
Diseño de Interfaces Mediante .NETDiseño de Interfaces Mediante .NET
Diseño de Interfaces Mediante .NET
 
Diagramas de clases y aplicaciones JAVA en NetBeans 6.9.1
Diagramas de clases y aplicaciones  JAVA en NetBeans 6.9.1Diagramas de clases y aplicaciones  JAVA en NetBeans 6.9.1
Diagramas de clases y aplicaciones JAVA en NetBeans 6.9.1
 
Greenfoot 9
Greenfoot 9Greenfoot 9
Greenfoot 9
 
Abstract Factory
Abstract FactoryAbstract Factory
Abstract Factory
 
Elementos De Una Clase
Elementos De Una ClaseElementos De Una Clase
Elementos De Una Clase
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Model view controller (mvc)
Model view controller (mvc)Model view controller (mvc)
Model view controller (mvc)
 
Diagrama de estado
Diagrama de estadoDiagrama de estado
Diagrama de estado
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
 
Asociaciones entre objetos-generalización especialización
Asociaciones entre objetos-generalización especializaciónAsociaciones entre objetos-generalización especialización
Asociaciones entre objetos-generalización especialización
 

Similar a SQLCOMMAND (20)

Objeto command
Objeto commandObjeto command
Objeto command
 
LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.
 
OBJETO SQLCOMMAND.
OBJETO SQLCOMMAND.OBJETO SQLCOMMAND.
OBJETO SQLCOMMAND.
 
Diapositivas de objeto sqlcommand
Diapositivas de objeto sqlcommandDiapositivas de objeto sqlcommand
Diapositivas de objeto sqlcommand
 
Sqlcommand
SqlcommandSqlcommand
Sqlcommand
 
Objeto sqlcommand
Objeto sqlcommandObjeto sqlcommand
Objeto sqlcommand
 
Objeto sqlcomand
Objeto sqlcomandObjeto sqlcomand
Objeto sqlcomand
 
Objeto SqlCommand
Objeto SqlCommandObjeto SqlCommand
Objeto SqlCommand
 
Objeto slqcommand
Objeto slqcommandObjeto slqcommand
Objeto slqcommand
 
Objeto Sql Command
Objeto Sql CommandObjeto Sql Command
Objeto Sql Command
 
Objeto connection
Objeto connectionObjeto connection
Objeto connection
 
Sqlcommand
SqlcommandSqlcommand
Sqlcommand
 
Sqlcommand
SqlcommandSqlcommand
Sqlcommand
 
Espacio de nombres system.data.sql client
Espacio de nombres system.data.sql clientEspacio de nombres system.data.sql client
Espacio de nombres system.data.sql client
 
Statement
StatementStatement
Statement
 
LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.
 
Espacio de nombres system.data.sqlclient
Espacio de nombres system.data.sqlclientEspacio de nombres system.data.sqlclient
Espacio de nombres system.data.sqlclient
 
System.Data.SqlClient
System.Data.SqlClient System.Data.SqlClient
System.Data.SqlClient
 
ESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENT
ESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENTESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENT
ESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENT
 
Espacio de nombres System.Data.SQLClient
Espacio de nombres System.Data.SQLClientEspacio de nombres System.Data.SQLClient
Espacio de nombres System.Data.SQLClient
 

Más de Lisbeth Ocaña Bueno (20)

OLAP - Procesamiento Analítico en Línea.
OLAP - Procesamiento Analítico en Línea.OLAP - Procesamiento Analítico en Línea.
OLAP - Procesamiento Analítico en Línea.
 
COPIA DE SEGURIDAD Y RESTAURACIÓN.
COPIA DE SEGURIDAD Y RESTAURACIÓN.COPIA DE SEGURIDAD Y RESTAURACIÓN.
COPIA DE SEGURIDAD Y RESTAURACIÓN.
 
TRANSACCIONES
TRANSACCIONESTRANSACCIONES
TRANSACCIONES
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
CURSORES EN SQL SERVER
CURSORES EN SQL SERVERCURSORES EN SQL SERVER
CURSORES EN SQL SERVER
 
PROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS
 
Comandos DDL
Comandos DDLComandos DDL
Comandos DDL
 
VISTAS
VISTASVISTAS
VISTAS
 
LENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQLLENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQL
 
Ejecutables en Netbeans
Ejecutables en NetbeansEjecutables en Netbeans
Ejecutables en Netbeans
 
REPORTES
REPORTESREPORTES
REPORTES
 
OBJETO CONNECTION
OBJETO CONNECTIONOBJETO CONNECTION
OBJETO CONNECTION
 
Ado.net
Ado.netAdo.net
Ado.net
 
Gestor de Base de Datos.
Gestor de Base de Datos.Gestor de Base de Datos.
Gestor de Base de Datos.
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Aplicaciones n capas en visual.net
Aplicaciones n capas en visual.netAplicaciones n capas en visual.net
Aplicaciones n capas en visual.net
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
JTABLE
JTABLEJTABLE
JTABLE
 
RESULTSET
RESULTSETRESULTSET
RESULTSET
 
Statement
StatementStatement
Statement
 

SQLCOMMAND

  • 1.
  • 3. DEFINICIÓN: SqlCommand representa un procedimiento almacenado o una instrucción de Transact-SQL que se ejecuta en una base de datos de SQL Server. Un objeto SqlCommand se utiliza cuando necesitamos ejecutar un tipo de sentencia Sql a la base de datos (estos tipos pueden ser: Delete, Update, Insert o Select). Cuando se crea una instancia de SqlCommand, las propiedades de lectura y escritura se establecen en sus valores iniciales. SqlCommand proporciona las siguientes propiedades y métodos de ejecución de comandos en una base de datos de SQL Server:
  • 4. PROPIEDADES: NOMBRE DESCRIPCIÓN ColumnEncryptionSetting Obtiene o establece la configuración del cifrado de columnas para este comando. CommandText Obtiene o establece la instrucción de Transact-SQL, el nombre de tabla o el procedimiento almacenado que se ejecutan en el origen de datos.(Invalida DbCommand.CommandText). CommandTimeout Obtiene o establece el tiempo de espera antes de terminar el intento de ejecutar un comando y generar un error.(Invalida DbCommand.CommandTimeout). CommandType Obtiene o establece un valor que indica cómo se interpreta la propiedad CommandText.(Invalida DbCommand.CommandType). Connection Obtiene o establece la interfaz SqlConnection que usa esta instancia de SqlCommand. Container Obtiene IContainer que contiene Component.(Heredado de Component). DesignTimeVisible Obtiene o establece un valor que indica si el objeto de comando debe estar visible en un control del Diseñador de Windows Forms.(Invalida DbCommand.DesignTimeVisible).
  • 5. Notification Obtiene o establece un valor que especifica el objeto SqlNotificationRequest enlazado a este comando. NotificationAutoEnlist Obtiene o establece un valor que indica si la aplicación debe recibir automáticamente notificaciones de consulta de un objeto SqlDependency común. Parameters Obtiene la estructura SqlParameterCollection. Site Obtiene o establece la ISite de la Component.(Heredado de Component). Transaction Obtiene o establece la transacción SqlTransaction en la que se ejecuta SqlCommand. UpdatedRowSource Obtiene o establece la manera en que se aplican los resultados del comando a DataRow cuando lo utiliza el método Update de DbDataAdapter.(Invalida DbCommand.UpdatedRowSource ).
  • 6. MÉTODOS: NOMBRE DESCRIPCIÓN BeginExecuteNonQuery() Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del procedimiento almacenado que describeSqlCommand. BeginExecuteNonQuery(AsyncCallback, Object) Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del procedimiento almacenado que describe SqlCommand, dados un procedimiento de devolución de llamada e información de estado. BeginExecuteReader() Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del procedimiento almacenado que describe SqlCommand y recupera uno o varios conjuntos de resultados del servidor. BeginExecuteReader(AsyncCallback, Object) Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del procedimiento almacenado que describeSqlCommand y recupera uno o varios conjuntos de resultados del servidor, dados un procedimiento de devolución de llamada e información de estado. BeginExecuteReader(AsyncCallback, Object, CommandBehavior) Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del procedimiento almacenado que describeSqlCommand, utilizando uno de los valores de CommandBehavior y recuperando uno o varios conjuntos de resultados del servidor, a partir del procedimiento de devolución de llamada e información de estado dados.
  • 7. BeginExecuteReader(CommandBehavior) Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del procedimiento almacenado que describe SqlCommand utilizando uno de los valores de CommandBehavior. BeginExecuteXmlReader() Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del procedimiento almacenado que describe SqlCommand y devuelve los resultados como un objeto XmlReader. BeginExecuteXmlReader(AsyncCallback, Object) Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del procedimiento almacenado que describe SqlCommand y devuelve los resultados como un objeto XmlReader a través de un procedimiento de devolución de llamada. Cancel() Intenta cancelar la ejecución de un SqlCommand.(Invalida DbCommand.Cancel()). Clone() Crea un nuevo objeto SqlCommand que es una copia de la instancia actual. CreateObjRef(Type) Crea un objeto que contiene toda la información relevante necesaria para generar a un proxy que se utiliza para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject). CreateParameter() Crea una nueva instancia de un objeto SqlParameter. Dispose() Libera todos los recursos que usa Component.(Heredado de Component). EndExecuteNonQuery(IAsyncResult) Finaliza la ejecución asincrónica de una instrucción de Transact-SQL.
  • 8. EndExecuteReader(IAsyncResult) Finaliza la ejecución asincrónica de una instrucción de Transact-SQL y devuelve el objeto SqlDataReadersolicitado. EndExecuteXmlReader(IAsyncResult) Finaliza la ejecución asincrónica de una instrucción de Transact-SQL y devuelve los datos solicitados como XML. Equals(Object) Determina si el objeto especificado es igual al objeto actual.(Heredado de Object). ExecuteNonQuery() Ejecuta una instrucción de Transact-SQL en la conexión y devuelve el número de filas afectadas.(Invalida DbCommand.ExecuteNonQuery()). ExecuteNonQueryAsync() Una versión asincrónica de ExecuteNonQuery, que ejecuta una instrucción SQL en un objeto de conexión. Invoca ExecuteNonQueryAsync con CancellationToken.None.(Heredado de DbCommand). ExecuteNonQueryAsync(CancellationToken) Versión asincrónica de ExecuteNonQuery, que ejecuta una instrucción de Transact- SQL con la conexión y devuelve el número de filas afectadas. Token de cancelación que se puede usar para solicitar que se abandone la operación antes de que transcurra el tiempo de espera del comando. Las excepciones se mostrarán a través del objeto Task devuelto. (Invalida DbCommand.ExecuteNonQueryAsync(CancellationToken)).
  • 9. ExecuteReader() Envía la propiedad CommandText a Connection y crea un objeto SqlDataReader. ExecuteReader(CommandBehavior) Envía CommandText a Connection y crea un SqlDataReader mediante uno de los valores de CommandBehavior. ExecuteReaderAsync() Una versión asincrónica de ExecuteReader, que envía la propiedad CommandText a la propiedad Connection y compila SqlDataReader. Las excepciones se mostrarán a través del objeto Task devuelto. ExecuteReaderAsync(CancellationToken) Una versión asincrónica de ExecuteReader, que envía la propiedad CommandText a la propiedad Connection y compila SqlDataReader. Token de cancelación que se puede usar para solicitar que se abandone la operación antes de que transcurra el tiempo de espera del comando. Las excepciones se mostrarán a través del objeto Task devuelto. ExecuteReaderAsync(CommandBehavior) Versión asincrónica de ExecuteReader, que envía la propiedad CommandText a la propiedad Connection y compila SqlDataReader. Las excepciones se mostrarán a través del objeto Task devuelto.
  • 10. ExecuteReaderAsync(CommandBehavior, CancellationToken) Versión asincrónica de ExecuteReader, que envía la propiedad CommandText a la propiedad Connection y compila SqlDataReader Token de cancelación que se puede usar para solicitar que se abandone la operación antes de que transcurra el tiempo de espera del comando. Las excepciones se mostrarán a través del objeto Task devuelto. ExecuteScalar() 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 tienen en cuenta.(Invalida DbCommand.ExecuteScalar()). ExecuteScalarAsync() Una versión asincrónica de ExecuteScalar, que ejecuta la consulta y devuelve la primera columna de la primera fila del conjunto de resultados devuelto por la consulta. Se omiten todas las demás columnas y filas. Invoca ExecuteScalarAsync con CancellationToken.None.(Heredado de DbCommand).
  • 11. ExecuteScalarAsync(CancellationToken) Versión asincrónica de ExecuteScalar que ejecuta la consulta asincrónicamente y devuelve la primera columna de la primera fila del conjunto de resultados que devuelve la consulta. Las demás columnas o filas no se tienen en cuenta. Token de cancelación que se puede usar para solicitar que se abandone la operación antes de que transcurra el tiempo de espera del comando. Las excepciones se mostrarán a través del objeto Task devuelto.(Invalida DbCommand.ExecuteScalarAsync(CancellationTo ken)). ExecuteXmlReader() Envía CommandText a Connection y crea un objeto XmlReader. ExecuteXmlReaderAsync() Una versión asincrónica de ExecuteXmlReader, que envía la propiedad CommandText a la propiedadConnection y compila un objeto XmlReader. Las excepciones se mostrarán a través del objeto Task devuelto. ExecuteXmlReaderAsync(CancellationToken) Una versión asincrónica de ExecuteXmlReader, que envía la propiedad CommandText a la propiedad Connection y compila un objeto XmlReader. Token de cancelación que se puede usar para solicitar que se abandone la operación antes de que transcurra el tiempo de espera del comando. Las excepciones se mostrarán a través del objeto Task devuelto.
  • 12. GetHashCode() Sirve como la función hash predeterminada. (Heredado de Object). GetLifetimeService() Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject). GetType() Obtiene el Type de la instancia actual.(Heredado de Object). InitializeLifetimeService() Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject). Prepare() Crea una versión preparada del comando en una instancia de SQL Server.(Invalida DbCommand.Prepare()). ResetCommandTimeout() Restablece el valor predeterminado de la propiedad CommandTimeout. ToString() Devuelve un String que contiene el nombre de la Component, si existe. Este método no se debe invalidar.(Heredado de Component).
  • 13. EJEMPLOS: CREAR UN OBJETO SQLCOMMAND: De manera similar a otros objetos C #, crea una instancia de un objeto SqlCommand a través de la nueva declaración de instancia, de la siguiente manera: SqlCommand cmd = new SqlCommand ("seleccionar CategoryName from Categories", conn); La línea anterior es típica para crear instancias de un objeto SqlCommand. Toma un parámetro de cadena que contiene el comando que desea ejecutar y una referencia a un objeto SqlConnection. SqlCommand tiene algunas sobrecargas, que verá en los ejemplos: CONSULTAR DATOS: Al usar un comando de selección SQL, recuperas un conjunto de datos. Para lograr esto con un objeto SqlCommand, se usa el método ExecuteReader, que devuelve un objeto SqlDataReader. El siguiente ejemplo muestra cómo usar el objeto SqlCommand para obtener un objeto SqlDataReader: //Creamos una instancia de un nuevo comando con una consulta y conexión: SqlCommand cmd = new SqlCommand ("seleccionar CategoryName from Categories", conn); //Llamamos al lector de ejecución para obtener resultados de consulta: SqlDataReader rdr = cmd.ExecuteReader ();
  • 14. En el ejemplo anterior, instanciamos un objeto SqlCommand, pasando la cadena de comando y el objeto de conexión al constructor. Luego obtenemos un objeto SqlDataReader llamando al método ExecuteReader del objeto SqlCommand, cmd. INSERTAR DATOS: Para insertar datos en una base de datos, usamos el método ExecuteNonQuery del objeto SqlCommand. El siguiente código muestra cómo insertar datos en una tabla de base de datos: // Preparamos el comando String String string insertString = @ " insertar en Categorías (CategoryName, descripción) valores ('Varios', 'Lo que no se ajusta en otro lado') "; //Creamos una instancia de un nuevo comando con una consulta y conexión SqlCommand cmd = new SqlCommand (insertString, conn); //Llamamos a ExecuteNonQuery para enviar el comando cmd.ExecuteNonQuery (); Para ejecutar este comando, simplemente llamamos al método ExecuteNonQuery en la instancia de SqlCommand, cmd.
  • 15. ACTUALIZACIÓN DE DATOS: El método ExecuteNonQuery también se usa para actualizar datos. El siguiente código muestra cómo actualizar los datos: //Preparamos el comando string String string updateString = @ " actualizar Categorías establecer CategoryName = 'Otro' donde CategoryName = 'Miscellaneous’ “; //Creamos una instancia de un nuevo comando con solo texto de comando SqlCommand cmd = new SqlCommand (updateString); // Establecemos la propiedad Connection cmd.Connection = conn; // Llamamos a ExecuteNonQuery para enviar comandos cmd.ExecuteNonQuery (); Nuevamente, colocamos el comando SQL en una variable de cadena, pero esta vez usamos un constructor SqlCommand diferente que toma solo el comando. Asignamos el objeto SqlConnection, conn, a la propiedad Connection del objeto SqlCommand, cmd. El método ExuteNonQuery realiza el comando de actualización.
  • 16. ELIMINAR DATOS: También puede eliminar datos utilizando el método ExecuteNonQuery. El siguiente ejemplo muestra cómo eliminar un registro de una base de datos con el método ExecuteNonQuery: // Preparamos el comando string String deleteString = @ " eliminar de Categorías donde CategoryName = 'Otro' "; //Creamos una instancia de un nuevo comando SqlCommand cmd = new SqlCommand (); // Establecemos la propiedad CommandText cmd.CommandText = deleteString; // Establecemos la propiedad Connection cmd.Connection = conn; // Llamamos a ExecuteNonQuery para enviar comandos cmd.ExecuteNonQuery (); Este ejemplo usa el constructor SqlCommand sin parámetros. En cambio, explicity establece las propiedades CommandText y Connection del objeto SqlCommand, cmd. La llamada al método ExecuteNonQuery envía el comando a la base de datos.
  • 17. OBTENER VALORES INDIVIDUALES: A veces, todo lo que necesita de una base de datos es un valor único, que puede ser un recuento, suma, promedio u otro valor agregado de un conjunto de datos. Realizar un ExecuteReader y calcular el resultado en su código no es la forma más eficiente de hacerlo. La mejor opción es dejar que la base de datos realice el trabajo y devuelva solo el valor que necesita. El siguiente ejemplo muestra cómo hacer esto con el método ExecuteScalar: //Creamos una instancia de un nuevo comando SqlCommand cmd = new SqlCommand ("select count (*) from Categories", conn); //Llamamamos a ExecuteNonQuery para enviar comandos Int count = ( int ) cmd.ExecuteScalar (); La consulta en el constructor SqlCommand obtiene el recuento de todos los registros de la tabla Categorías. Esta consulta solo devolverá un valor único. El método ExecuteScalar devuelve este valor. Como el tipo de devolución de ExecuteScalar es type object, utilizamos un operador de conversión para convertir el valor a int.
  • 18. RESUMEN: Un objeto SqlCommand le permite consultar y enviar comandos a una base de datos. Tiene métodos que están especializados para diferentes comandos. El método ExecuteReader devuelve un objeto SqlDataReader para ver los resultados de una consulta de selección. Para insertar, actualizar y eliminar comandos SQL, utiliza el método ExecuteNonQuery. Si solo necesita un único valor agregado de una consulta, ExecuteScalar es la mejor opción. SqlCommand define una propiedad de colección llamada Parameters, en esta propiedad se almacenan los valores para los parámetros utilizados en una instrucción o consulta de SQL que ha sido asignada como cadena de caracteres a la propiedad CommandText de un SqlCommand. Estos parámetros son del tipo SqlParameter y están directamente relacionados con las variables utilizadas en las instrucciones o consultas T-SQL. La ventaja de utilizar las variables de T-SQL en la cadena de la consulta, nos permiten tener una cadena de caracteres uniforme y similar a lo que se usa directamente con T-SQL, estas variables también pueden ser los parámetros de un procedimiento almacenado.
  • 19. RECOMENDACIONES: Los comandos se emiten en las bases de datos para realizar acciones en almacenes de datos e incluir cualquier instrucción que se pueda emitir en una base de datos. Puede utilizar las clases OleDbCommand o SqlCommand para obtener un comando para su almacén de datos; OleDbCommand puede ser específica del almacén de datos. Con ADO, puede ejecutar comandos a través de los objetos Command, Connection o Recordset. En ADO.NET, sólo los objetos Command (SqlCommand u OleDbCommand) ejecutan comandos. CONCLUSIONES: SqlCommand trata con bases de datos. Ejecuta comandos SQL en una base de datos. Envía un comando SQL a una base de datos especificada por un objeto SqlConnection. Luego llama a los métodos de instancia para aplicar físicamente el comando a la base de datos. El tipo SqlCommand tiene un constructor parametrizado público y se puede usar con uno o más argumentos. El primer parámetro especifica la declaración de SQL. El segundo parámetro es SqlConnection. El tercer parámetro es SqlTransaction.
  • 20. APRECIACIÓN DEL EQUIPO: Un objeto SqlCommand nos permite especificar qué tipo de interacción desea realizar con una base de datos. Por ejemplo, puede seleccionar, insertar, modificar y eliminar comandos en filas de datos en una tabla de base de datos. El objeto SqlCommand se puede usar para admitir escenarios de administración de datos desconectados. SqlCommand tiene un constructor y puede especificar su conexión y el texto SQL.