jueves, 26 de octubre de 2017

OBJETO SQLCOMMAND



    ESCUELA ACADÉMICO PROFESIONAL DE SISTEMAS Y TELEMÁTICA.

ASIGNATURA:
LABORATORIO DE PROGRAMACION III

TEMA:
OBJETO SQLCOMMAND.

AUTORES:

CRISTHIAN SERGIO KAYAP KAGKIKAT.

INGRID LESLY CORONEL ACUÑA.

DOCENTE:
ING. MARCO AURELIO PORRO CHULLI.

BAGUA GRANDE - UTCUBAMBA

AMAZONAS


2017


RESUMEN:

SqlCommand: Representa un procedimiento almacenado o una instrucción de Transact-SQL que se ejecuta en una base de datos de SQL Server.
Propiedades y métodos:
•       CommandText
•       CommandType
•       Connection,
•       Parameters
•       ExecuteReader()



DEFINICION DE OBJETO SQLCOMMAND.

Un SqlCommand se utiliza cuando necesitas ejecutar un tipo de sentencia Sql a la base de datos (los tipos pueden ser: Delete, Update, Insert o Select). 
Después de establecer la conexión con la BD, se usa el objeto Command para ejecutar sentencias SQL y devolver los resultados.
q   OleDbCommand: Datos compatibles con OleDb
q   OdbcCommand: Datos compatibles con Odbc
q   SqlCommand: Datos compatibles con SQL Server

q   OracleCommand: Datos compatibles con Oracle

SUMARY
SqlCommand: Represents a stored procedure or a Transact-SQL statement that runs in a SQL Server database.
Properties and methods:
• CommandText
• CommandType
• Connection,
• Parameters
• ExecuteReader ()

SQLCOMMAND OBJECT DEFINITION.A SqlCommand is used hen you need to execute a type of Sql statement to the database (the types can be: Delete, Update, Insert or Select).After establishing the connection to the DB, the Command object is used to execute SQL statements and return the results.q OleDbCommand: Data compatible with OleDbOdbcCommand: Data compatible with Odbcq SqlCommand: Data compatible with SQL Serverq OracleCommand: Data compatible with Oracle.
PROPIEDADES DE SQLCOMMAND:
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 DE SQLCOMMAND:

Nombre
Descripción

BeginExecuteNonQuery()
Inicia la ejecución asincrónica de la instrucción de Transact-SQL o del procedimiento almacenado que describe SqlCommand.


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.

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 describe SqlCommand 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 describe SqlCommand, 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.
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 Connectiony 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 Connectiony 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(CancellationToken)).

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 propiedad Connection 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 DE SQLCOMMAND:

EJEMPLO 1:

String  consulta =  "SELECT OrderID, CustomerID FROM Orders;"
SqlCommand commando =  new SqlCommand(consulta, conectar);

connectar.Open();

EJEMPLO 2:

public List Listar()
{
    SqlConnection con = new SqlConnection(cadenaConexion);
    SqlCommand com = new SqlCommand("LISTAR_CAMPANAS", con);
    com.CommandType = System.Data.CommandType.StoredProcedure;
    con.Open();
    SqlDataReader drCampanas = com.ExecuteReader();
    List listaCampanas = new List();
    while (drCampanas.Read())
    {
        listaCampanas.Add(Cargar(drCampanas));
    }
    drCampanas.Close();
    con.Close();
    return listaCampanas;
}


EJEMPLO 3.

public List Listar()
{
    SqlConnection con = new SqlConnection(cadenaConexion);
    SqlCommand com = new SqlCommand("LISTAR_MESAS", con);
    com.CommandType = System.Data.CommandType.StoredProcedure;
    con.Open();
    SqlDataReader drMesas = com.ExecuteReader();
    List listaMesas = new List();
    while (drMesas.Read())
    {
        listaMesas.Add(Cargar(drMesas));
    }
    drMesas.Close();
    con.Close();
    return listaMesas;
}

EJEMPLO 4.

PROPIEDAD SQLCOMMAND.PARAMETERS

Private Sub UpdateDemographics(ByVal customerID As Integer, _
    ByVal demoXml As String, _
    ByVal connectionString As String)
    ' Update the demographics for a store, which is stored
    ' in an xml column.
    Dim commandText As String = _
     "UPDATE Sales.Store SET Demographics = @demographics " _
     & "WHERE CustomerID = @ID;"
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(commandText, connection)
        ' Add CustomerID parameter for WHERE clause.
        command.Parameters.Add("@ID", SqlDbType.Int)
        command.Parameters("@ID").Value = customerID
        ' Use AddWithValue to assign Demographics.
        ' SQL Server will implicitly convert strings into XML.
        command.Parameters.AddWithValue("@demographics", demoXml)
        Try
            connection.Open()
            Dim rowsAffected As Integer = command.ExecuteNonQuery()
            Console.WriteLine("RowsAffected: {0}", rowsAffected)

        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
    End Using
End Sub

RECOMENDACIONES:

Utilizamos el Objeto SqlCommand solamente cuando necesitamos ejecutar un tipo de sentencia Sql a la base de datos.

Si deseamos ejecutar más de un tipo de sentencia Sql a la base de datos es recomendable utilizar SqlDataAdapter.

No podrás utilizar el Objeto SqlCommand cuando necesitas ejecutar más de un tipo de sentencia Sql  o si trabajarás en escenarios desconectados.

CONCLUSIONES:
Podemos decir que si solo necesitamos ejecutar un tipo de sentencia Sql a la base de datos hay que utilizar el Objeto SqlCommand.

El Objeto SqlCommand  utiliza tipos que pueden ser: Delete, Update, Insert o Select.

Podemos concluir que si no necesitas trabajar en escenarios desconectados y si solo necesitas utilizar un comando a la vez, utiliza un SqlCommand, de lo contrario un SqlDataAdapter.

GLOSARIO DE TÉRMICO:

OLE DB :
OLE DB (algunas veces escrito como OLEDB u OLE-DB) es la sigla de Object Linking and Embedding for Databases ("Enlace e incrustación de objetos para bases de datos") y es una tecnología desarrollada por Microsoft usada para tener acceso a diferentes fuentes de información, o bases de datos, de manera uniforme.

ODBC:
El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin importar qué sistema de gestión de bases de datos (DBMS) almacene los datos.

ORACLE:
Oracle es básicamente una herramienta cliente/servidor para la gestión de Bases de Datos. Es un producto vendido a nivel mundial, aunque la gran potencia que tiene y su elevado precio hace que sólo se vea en empresas muy grandes y multinacionales, por norma general.

SELECT:
Para realizar consultas sobre las tablas de las bases de datos disponemos de la instrucción SELECT. Con ella podemos consultar una o varias tablas. 

SQLDATAADAPTER:
Representa un conjunto de comandos de datos y una conexión de base de datos que se utilizan para rellenar un DataSet y actualizar una base de datos de SQL Server. Esta clase no se puede heredar. SqlDataAdapter, Se utiliza como un puente entre DataSet y SQL Server para recuperar y guardar datos


APRECIACION DE EQUIPO:

El Objeto  SqlCommand se utiliza cuando necesitas ejecutar un tipo de sentencia Sql a la base de datos y también el  Objeto  SqlCommand tiene un conjunto de propiedades y métodos.

BIBLIOGRAFIA O LINKOGRAFIA:

https://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqlcommand_properties(v=vs.110).aspx

https://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqlcommand_methods(v=vs.110).aspx

https://jacace.wordpress.com/2012/01/22/en-que-casos-se-debe-usar-un-sqlcommand-

https://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqlcommand.parameters(v=vs.110).aspx

https://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqlcommand.parameters(v=vs.110).aspx?cs-save-
lang=1&cs-lang=vb#code-snippet-2

LINK DE DIAPOSITIVA

https://www.slideshare.net/secret/2pmrucz6qmNlVR


VIDEOS