UNIVERSIDAD POLITECNICA AMAZONICA
INGENIERÍA DE SISTEMAS Y TELEMÁTICAS
Docente : Marco Aurelio Porro Chulli
Asignatura :Lenguaje de Programación III.
Ciclo : VII "A"
Integrantes : Vicente Wualdir Alberca Rojas
Yenny Isabel Cuello Morón
OBJETO SQLCOMMAND
Ø Definición
Obtiene o
establece un valor que indica cómo se interpreta la propiedad CommandText.
Representa un procedimiento almacenado o una instrucción de Transact-SQL que se
ejecuta en una base de datos de SQL Server. Representa una conexión abierta a
una base de datos de SQL Server. Esta clase no puede heredarse. Ejecuta una
instrucción de Transact-SQL en la conexión y
devuelve el número de filas afectadas.
Ø Propiedades
Nombre
|
Descripción
|
Obtiene
o establece la configuración del cifrado de columnas para este comando.
|
|
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).
|
|
Obtiene
o establece el tiempo de espera antes de terminar el intento de ejecutar un
comando y generar un error.(Invalida DbCommand.CommandTimeout).
|
|
Obtiene
o establece un valor que indica cómo se interpreta la propiedad CommandText.(Invalida DbCommand.CommandType).
|
|
Obtiene IContainer que contiene Component.(Heredado de Component).
|
|
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).
|
|
Obtiene
o establece un valor que especifica el objeto SqlNotificationRequest enlazado a
este comando.
|
|
Obtiene
o establece un valor que indica si la aplicación debe recibir automáticamente
notificaciones de consulta de un objeto SqlDependency común.
|
|
Obtiene
la estructura SqlParameterCollection.
|
|
Obtiene
o establece la transacción SqlTransaction en la que se
ejecuta SqlCommand.
|
|
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).
|
Implementaciones de interfaz
explícitas
Nombres
|
Descripción
|
Obtiene
o establece la interfaz IDbConnection que usa esta instancia
de IDbCommand.(Heredado de DbCommand).
|
|
Obtiene
la estructura IDataParameterCollection.(Heredado
de DbCommand).
|
|
Obtiene
o establece DbTransaction dentro del cual se
ejecuta este objeto DbCommand.(Heredado de DbCommand).
|
Ø Métodos
Nombre
|
Descripción
|
Inicia la ejecución asincrónica
de la instrucción de Transact-SQL o del procedimiento almacenado que
describe SqlCommand.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
Intenta cancelar la ejecución
de un SqlCommand.(Invalida DbCommand.Cancel()).
|
|
Crea un nuevo objeto SqlCommand que
es una copia de la instancia actual.
|
|
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).
|
|
Crea una nueva instancia de un
objeto SqlParameter.
|
|
Finaliza la ejecución
asincrónica de una instrucción de Transact-SQL.
|
|
Finaliza la ejecución
asincrónica de una instrucción de Transact-SQL y devuelve el objeto SqlDataReadersolicitado.
|
|
Finaliza la ejecución
asincrónica de una instrucción de Transact-SQL y devuelve los datos
solicitados como XML.
|
|
Determina si el objeto
especificado es igual al objeto actual.(Heredado de Object).
|
|
Ejecuta una instrucción de
Transact-SQL en la conexión y devuelve el número de filas
afectadas.(Invalida DbCommand.ExecuteNonQuery()).
|
|
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).
|
|
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)).
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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()).
|
|
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).
|
|
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)).
|
|
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.
|
|
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.
|
|
Sirve como la función hash
predeterminada.(Heredado de Object).
|
|
Recupera el objeto de servicio
de duración actual que controla la directiva de duración de esta
instancia.(Heredado de MarshalByRefObject).
|
|
Obtiene un objeto de servicio
de duración para controlar la directiva de duración de esta
instancia.(Heredado de MarshalByRefObject).
|
|
Crea una versión preparada del
comando en una instancia de SQL Server.(Invalida DbCommand.Prepare()).
|
|
Restablece el valor
predeterminado de la propiedad CommandTimeout.
|
|
Ø Ejemplos
Aquí
tienes el código completo para Visual C# 2005 o superior y usando una base de
datos de SQL Server.
Para
insertar los datos, te lo muestro de dos formas: usando un objeto SqlCommand y
un SqlDataAdapter.
Recuerda que
los datos están en una base de datos de SQL Server que está en la instancia
SQLEXPRESS del equipo local.
Para más info sobre la base de datos de ejemplo, ver: Estructura de la tabla de ejemplo.
Para más info sobre la base de datos de ejemplo, ver: Estructura de la tabla de ejemplo.
Para usar
esta clase, puedes usar el siguiente código:
class Program
{
static void Main(string[] args)
{
ejemploSQL();
Console.ReadLine();
}
static void ejemploSQL()
{
AccesoDatosSQL sql = new AccesoDatosSQL();
int t = sql.TotalRegistros();
Console.WriteLine("El total de registros es: {0}", t);
Console.WriteLine();
int id;
// Usando un command
id = sql.Insertar("Guillermo", "Som",
"guille@nombres.com", DateTime.Now,
"Prueba de insertar datos " + t + 1);
Console.WriteLine("El nuevo ID es: {0}", id);
// Usando un dataAdapter
//id = sql.InsertarAdapter("Guillermo", "Som",
//
"guille@nombres.com", DateTime.Now,
// "Prueba de insertar
datos " & t + 1);
//Console.WriteLine("El nuevo ID es: {0}", id);
// Actualizar el ID 2
id = 2;
sql.Actualizar(id, "Guillermo nº" + id, "Som",
"guille@nombres.com", DateTime.Now);
}
}
//-----------------------------------------------------------------------------
// Instrucciones SQL desde ADO.NET con
Visual C# y SQL Server (26/May/08)
//
// ©Guillermo 'guille' Som, 2008
//-----------------------------------------------------------------------------
using System;
using System.Data;
using System.Data.SqlClient;
namespace InstruccionesSQL_CS
{
public class AccesoDatosSQL
{
public string NombreTabla = "Tabla1";
public string CadenaConexion()
{
SqlConnectionStringBuilder csb = new SqlConnectionStringBuilder();
csb.DataSource = @"(local)\SQLEXPRESS";
csb.InitialCatalog = "prueba_SQL";
csb.IntegratedSecurity = true;
return csb.ConnectionString;
}
public int Insertar(string nombre,
string apellidos, string email,
DateTime fecha, string descripcion)
{
string sCon = CadenaConexion();
string sel;
sel = "INSERT INTO " + NombreTabla +
"(Nombre, Apellidos, Email, Fecha,
Descripcion) " +
"VALUES " + "(@Nombre, @Apellidos, @Email, @Fecha,
@Descripcion) " +
"SELECT @@Identity";
using(SqlConnection con = new SqlConnection(sCon))
{
SqlCommand cmd = new SqlCommand(sel, con);
cmd.Parameters.AddWithValue("@Nombre", nombre);
cmd.Parameters.AddWithValue("@Apellidos", apellidos);
cmd.Parameters.AddWithValue("@Email", email);
cmd.Parameters.AddWithValue("@Fecha", fecha);
cmd.Parameters.AddWithValue("@Descripcion", descripcion);
con.Open();
int t = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
return t;
}
}
public int InsertarAdapter(string nombre,
string apellidos, string email,
DateTime fecha, string descripcion)
{
string sCon = CadenaConexion();
string sel;
// Usando un DataAdapter
sel = "SELECT * FROM " + NombreTabla;
SqlDataAdapter da = new SqlDataAdapter(sel, sCon);
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
SqlCommandBuilder cb = new SqlCommandBuilder(da);
DataTable dt = new DataTable();
da.Fill(dt);
DataRow dr = dt.NewRow();
dr["Nombre"] = nombre;
dr["Apellidos"] = apellidos;
dr["Email"] = email;
dr["Fecha"] = fecha.ToString("dd/MM/yyyy");
dr["Descripcion"] = descripcion;
dt.Rows.Add(dr);
da.Update(dt);
return Convert.ToInt32(dr["ID"]);
}
public void Eliminar(int id)
{
string sCon = CadenaConexion();
string sel = "DELETE FROM " + NombreTabla + " WHERE ID = @ID";
using(SqlConnection con = new SqlConnection(sCon))
{
SqlCommand cmd = new SqlCommand(sel, con);
cmd.Parameters.AddWithValue("@ID", id);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
public void Actualizar(int id, string nombre,
string apellidos, string email, DateTime fecha)
{
string sCon = CadenaConexion();
string sel;
sel = "UPDATE " + NombreTabla +
" SET Nombre = @Nombre,
Apellidos = @Apellidos, Email = @Email, Fecha = @Fecha" +
" WHERE ID = @ID";
using(SqlConnection con = new SqlConnection(sCon))
{
SqlCommand cmd = new SqlCommand(sel, con);
cmd.Parameters.AddWithValue("@ID", id);
cmd.Parameters.AddWithValue("@Nombre", nombre);
cmd.Parameters.AddWithValue("@Apellidos", apellidos);
cmd.Parameters.AddWithValue("@Email", email);
cmd.Parameters.AddWithValue("@Fecha", fecha);
con.Open();
int t = cmd.ExecuteNonQuery();
con.Close();
Console.WriteLine("Filas actualizadas: {0}", t);
}
}
public int TotalRegistros()
{
string sCon = CadenaConexion();
string sel = "SELECT COUNT(*) FROM " + NombreTabla;
using(SqlConnection con = new SqlConnection(sCon))
{
SqlCommand cmd = new SqlCommand(sel, con);
con.Open();
int t = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
return t;
}
}
}
}
Ejemplo de SqlCommand
|
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;
}
|
2. Resumen
Obtiene o establece un valor que indica cómo se
interpreta la propiedad CommandText. Representa un procedimiento almacenado o
una instrucción de Transact-SQL que se ejecuta en una base de datos de SQL
Server. Representa una conexión abierta a una base de datos de SQL Server. Esta
clase no puede heredarse.
Propiedades
ColumnEncryptionSetting
CommandText
CommandTimeout
CommandType
Connection
Container
Métodos
Ø BeginExecuteNonQuery()
Ø BeginExecuteNonQuery(AsyncCallback, Object)
Ø BeginExecuteReader()
Ø BeginExecuteReader(AsyncCallback, Object)
Ø BeginExecuteReader(AsyncCallback, Object, CommandBehavior)
Ø BeginExecuteReader(CommandBehavior)
Ø BeginExecuteXmlReader()
3. Summary
Gets or sets a value that indicates how the CommandText property is interpreted. Represents a stored procedure or a Transact-SQL statement that runs in a SQL Server database. Represents an open connection to a SQL Server database. This class can not be inherited.
Properties
Ø ColumnEncryptionSetting
Ø CommandText
Ø CommandTimeout
Ø CommandType
Ø Connection
Ø Container
Methods
Ø BeginExecuteNonQuery ()
Ø BeginExecuteNonQuery (AsyncCallback, Object)
Ø BeginExecuteReader ()
Ø BeginExecuteReader (AsyncCallback, Object)
Ø BeginExecuteReader (AsyncCallback, Object, CommandBehavior)
Ø BeginExecuteReader (CommandBehavior)
Ø BeginExecuteXmlReader ()
4. Recomendaciones
Ø 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).
Ø Se recomienda
utilizar el Objeto SqlCommand solamente cuando necesites ejecutar un tipo de
sentencia Sql a la base de datos.
Ø No podrás
utilizar el Objeto SqlCommand cuando necesites ejecutar más de un tipo de
sentencia Sql o si trabajarás en escenarios desconectados.
Ø Si deseamos
ejecutar más de un tipo de sentencia Sql a la base de datos se recomienda
utilizar SqlDataAdapter.
5. Conclusiones
Ø A través de un objeto Command también
podremos obtener un conjunto de resultados del almacén de datos, en este caso
estos resultados se pasarán a otros objetos de ADO .NET, como puede ser un
DataReader o bien un objeto DataAdapter.
Ø Se puede restablecer el valor de
la propiedad CommandText y volver a utilizar el objeto SqlCommand. Sin embargo,
es necesario cerrar SqlDataReader para poder ejecutar un comando nuevo o
previo.
Ø El SqlCommand tiene un
constructor y esto se puede especificar su conexión y el texto de SQL.
6. Apreciación del Equipo
Ø Puede reutilizar los objetos Command (SqlCommand o OleDbCommand) en código. Es decir, puede crear un
objeto de comando y ejecute
comandos diferentes en ese objeto.
Ø Utilizamos el Objeto SqlCommand solamente
cuando necesitamos ejecutar un tipo de sentencia Sql a la base de datos.
Ø 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.
7. Glosario de Términos
Transact-SQL: También es conocido por sus abreviaturas como T-SQL, como
definición es una extensión del SQL Microsoft junto son Sybase. Lo que
conocemos a SQL como el lenguaje de búsqueda.
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.
CommandType: Propiedad se establece
en StoredProcedure, el CommandText propiedad se debe establecer en el nombre
del procedimiento almacenado que se tenga acceso.
Site: Los Cuartos de Equipos,
comúnmente llamados SITE´s de comunicaciones,
proveen el espacio para albergar el equipo de telecomunicaciones y cómputo de
una organización.
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
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.
ExecuteScalar():Ejecuta la consulta y devuelve la primera columna
de la primera fila del conjunto de resultados devuelto por la consulta.
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
ExecuteXmlReader():Envía CommandText a Connection y
crea un objeto XmlReader.
8. Linkografías
Aqui les dejo el link de las diapositivas del tema
Defina claramente su APRECIACIÓN. Se tiene que establecer 3 RECOMENDACIONES y CONCLUSIONES.Muchas gracias por su aporte. Saludos
ResponderEliminar