ESPACIO DE NOMBRES SYSTEM.DATA. SQLCLIENT
1.CONTENIDO
· Definición
Los
espacios de nombres (namespaces) son uno de los pilares que conforman los
cimientos de XML. En general, en informática, un namespace o espacio de nombres
es un medio para organizar clases dentro de un entorno, agrupándolas de un modo
más lógico y jerárquico.
El espacio
de nombres System.Data proporciona acceso a las clases que representan la
arquitectura de ADO.NET. ADO.NET permite crear componentes que administran
datos de varios orígenes de datos con eficacia.
Es un
proveedor de datos de .NET Framework para SQL Server describe una colección de
clases utilizada para tener acceso a una base de datos de SQL Server en el
espacio administrado. Al utilizar SqlDataAdapter, se puede rellenar un DataSet
residente en memoria, que sirve para consultar y actualizar la base de datos.
· Clases
v SqlClientPermission Habilita el proveedor de datos de
.NET Framework para SQL Server para garantizar que un usuario tiene el nivel de
seguridad adecuado para obtener acceso a un origen de datos.
v SqlClientPermissionAttribute Asocia una acción de seguridad a
un atributo de seguridad personalizado.
v SqlCommand Representa un procedimiento
almacenado o una instrucción de Transact-SQL que se ejecuta en una base de
datos de SQL Server. Esta clase no se puede heredar.
v SqlCommandBuilder Genera automáticamente, en una
sola tabla, los comandos que se utilizan para reconciliar los cambios
realizados en un DataSet con la base de datos de SQL Server asociada. Esta
clase no se puede heredar.
v SqlConnection Representa una conexión abierta
con una base de datos de SQL Server. Esta clase no se puede heredar.
v 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.
v SqlDataReader Proporciona una forma de leer una
secuencia de filas sólo hacia delante en una base de datos de SQL Server. Esta
clase no se puede heredar.
v SqlError Recopila información relevante
para una advertencia o un error devuelto por SQL Server. Esta clase no se puede
heredar.
v SqlErrorCollection Recopila todos los errores
generados por el proveedor de datos de .NET Framework para SQL Server. Esta
clase no se puede heredar.
v SqlException La excepción que se inicia cuando
SQL Server devuelve una advertencia o un error. Esta clase no se puede heredar.
v SqlInfoMessageEventArgs Proporciona datos para el evento
InfoMessage. Esta clase no se puede heredar.
v SqlParameter Representa un parámetro de un
SqlCommand y, de manera opcional, su asignación a columnas de DataSet. Esta
clase no se puede heredar.
v SqlParameterCollection Representa una colección de
parámetros relevantes para SqlCommand, así como las asignaciones
correspondientes a las columnas de DataSet. Esta clase no se puede heredar.
v SqlRowUpdatedEventArgs Proporciona datos para el evento
RowUpdated. Esta clase no se puede heredar.
v SqlRowUpdatingEventArgs Proporciona datos del evento
RowUpdating. Esta clase no se puede heredar.
v SqlTransaction Representa una transacción de
Transact-SQL que se realiza en una base de datos de SQL Server. Esta clase no
se puede heredar.
· Delegados




·
Enumeraciones
ü ApplicationIntent:Especifica un valor para
ApplicationIntent. Los valores posibles son ReadWrite y ReadOnly.
ü PoolBlockingPeriod:Especifica un valor para
PoolBlockingPeriod Propiedad.
ü SortOrder:Especifica cómo se ordenan las
filas de datos.
ü SqlAuthenticationMethod:Describe
los diferentes métodos de autenticación de SQL que puede usar un cliente que se
conecta a la base de datos SQL de Azure. Para obtener más información, consulte Connecting to SQL Database By
Using Azure Active Directory Authentication.
ü SqlBulkCopyOptions :Marca bit a
bit que especifica una o varias opciones que se van a usar con una instancia de
SqlBulkCopy.
ü SqlCommandColumnEncryptionSetting:Especifica
cómo se enviarán y recibirán los datos al leer y editar columnas cifradas.
Según su consulta específica, el impacto en el rendimiento puede reducirse
omitiendo el procesamiento del controlador Siempre cifrado cuando no se usan
columnas sin cifrar. Tenga en cuenta que no se puede usar esta configuración
para omitir el cifrado y obtener acceso a datos de texto no cifrado. Para
obtener más información, vea Always Encrypted (Database Engine)
ü SqlConnectionColumnEncryptionSetting:Especifica
que la funcionalidad de siempre cifrado está habilitada en una conexión. Tenga
en cuenta que no se puede usar esta configuración para omitir el cifrado y
obtener acceso a datos de texto no cifrado. Para obtener más información,
consulte Always Encrypted (Database Engine).
ü SqlNotificationInfo:Esta enumeración proporciona
información adicional sobre las diferentes notificaciones que puede ser
recibido por el controlador de eventos de dependencia.
ü SqlNotificationSource:Indica el
origen de la notificación recibida por el controlador de eventos de
dependencia.
ü SqlNotificationType:Describe los diferentes
tipos de notificación que pueden recibir un OnChangeEventHandler el controlador
de eventos a través de la SqlNotificationEventArgs parámetro.
· Ejemplos
a. Siga estos pasos para crear
una nueva aplicación de consola de Visual J#. NET:
Inicie Visual Studio. NET.
Inicie Visual Studio. NET.
b. En el menú archivo,
elija nuevo y, a continuación, haga clic en proyecto.
c. En el cuadro de diálogo Nuevo
proyecto , haga clic en Proyectos de Visual J# en Tipos
de proyectoy, a continuación, haga clic en Aplicación de consola en plantillas.
2. Asegúrese de que el proyecto
contiene una referencia al espacio de nombres System.Data y
agregue una referencia si no es así.
3. Para que no tenga que
suministrar declaraciones de dichos espacios de nombres más adelante en el
código, utilice la instrucción import en el System.Data.SqlClient y
los espacios de nombres System.Data.OleDb .
import
System.Data.SqlClient.*;import System.Data.OleDb.*;
import System.Data.*;
import System.Data.*;
4. Antes de poder crear una
conexión a una base de datos, debe tener una cadena de conexión. Cadenas de
conexión contienen toda la información que necesita para establecer una
conexión de base de datos, incluyendo el nombre del servidor, el nombre de la
base de datos, el identificador de usuario y la contraseña. Evite utilizar la
cuenta SA. Por ejemplo, la cadena de conexión siguiente señala a un equipo
local que ejecuta SQL Server con una cuenta de < username > y una fuerte
contraseña < strong >:
Para las conexiones OleDb:
Para las conexiones OleDb:
Provider=SQLOLEDB.1;User
ID=<username>;Password=<strong password>;Initial Catalog=pubs;Data
Source=(local)
Para las conexiones de SqlClient:
User
ID=<username>;Initial Catalog=pubs;Data Source=(local)
Nota: si necesita más ayuda para determinar
la cadena de conexión para la base de datos, busque
"ConnectionString" en Microsoft Developer Network (MSDN) Library en
el sitio Web de Microsoft siguiente:
5. Visual Studio crea una clase
estática y un procedimiento Main() vacío. Declare una variable
de cadena y almacene la cadena de conexión apropiada para la base de datos en
este procedimiento:
public
static void main(String[] args){
//
// TODO: Add code to start application here
//
String sConnectionString = "User ID=<username>;Initial Catalog=pubs;Data Source=mysource1;Password=<strong password>";
}
//
// TODO: Add code to start application here
//
String sConnectionString = "User ID=<username>;Initial Catalog=pubs;Data Source=mysource1;Password=<strong password>";
}
6. Con esta cadena de conexión,
cree un nuevo objeto OleDbConnection o SqlConnection y
llamar a su método Open para establecer una conexión con la
base de datos:
SqlConnection
objConn = new SqlConnection(sConnectionString);objConn.Open();
7. Crear objeto OleDbCommand o SqlCommand y
pase el comando que desea ejecutar y el objeto de conexión que creó en el paso
anterior. El código de ejemplo siguiente pasa la instrucción INSERT:
String
sSQL = "INSERT INTO Employee " + "(emp_id, fname, minit, lname,
job_id, job_lvl,pub_id, hire_date) " + "VALUES ('MSD12923F',
'Duncan', 'W', 'Mackenzie',10,82,'0877','2001-01-01')";SqlCommand objCmd =
new SqlCommand(sSQL,objConn);
8. Después de crear el objeto OleDbCommand o SqlCommand ,
puede llamar al método ExecuteNonQuery para ejecutar el
comando que representa. ExecuteNonQuery está diseñado para
comandos que no devuelven ningún resultado (como DELETE, la actualización y las
instrucciones INSERT). Si la instrucción Execute se ejecuta
sin desencadenar una excepción (vea el código siguiente), el comando se ha
ejecutado correctamente en la base de datos.
objCmd.ExecuteNonQuery();
9. Modifique la cadena de
conexión según corresponda para su entorno y, a continuación, guarde el
proyecto. En el menú Depurar , haga clic en Iniciar para
ejecutar el comando contra la base de datos.
Cómo utilizar parámetros
Cuando ejecuta los comandos contra una base de datos (tales como la
UPDATE, INSERT y DELETE instrucciones o llamadas a procedimientos almacenan),
estos comandos suelen tener parámetros. Esto permite que el comando se crea una
vez y ejecutarse varias veces con diferentes valores que se insertan en lugar
de parámetros. Considere la instrucción DELETE correspondiente a la instrucción
INSERT que se utiliza en la sección anterior:
String
sSQL = "DELETE FROM Employee WHERE
emp_id = @emp_id";
El nombre de parámetro ("@emp_id") de esta instrucción DELETE
representa un parámetro que puede reemplazar con valores diferentes cada vez
que ejecute el comando.
Para utilizar parámetros con el comando, siga estos pasos:
Para utilizar parámetros con el comando, siga estos pasos:
1. Cree un objeto OleDbConnection o SqlConnection ,
como hizo en la sección "cómo ejecutar un
comando".
2. Reemplace los valores por
marcadores de posición (por ejemplo, "@emp_id" o "@fname")
para que el texto del comando utilice parámetros. Vea la instrucción DELETE
antes de estos pasos para obtener un ejemplo.
3. Cree un objeto OleDbCommand o SqlCommand y
pase el objeto de conexión que creó en el primer paso y el texto del comando
que contiene los marcadores de posición de parámetro.
4. Obtiene la colección de
parámetros del objeto command:
SqlParameterCollection
ParamColl = objCmd.get_Parameters();
5. Para cada parámetro, agregue
un objeto de parámetro a la colección de parámetros del objeto command. Para
cada parámetro, debe especificar un nombre y tipo de datos.
ParamColl.Add("@emp_id",SqlDbType.Char,9);
6. Los procedimientos
almacenados pueden tener parámetros que devuelvan valores y parámetros de
salida. También debe establecer un valor para cada parámetro de entrada para
poder ejecutar la consulta:
ParamColl.get_Item("@emp_id").set_Value((System.String)"MSD12923F");
7. Ejecute la consulta como
sigue:
try {
objCmd.ExecuteNonQuery();
}
catch (System.Exception e)
{
Console.WriteLine(e.Message);
}
Console.WriteLine("Record Deleted");
objCmd.ExecuteNonQuery();
}
catch (System.Exception e)
{
Console.WriteLine(e.Message);
}
Console.WriteLine("Record Deleted");
2.RESUMEN
Entre los espacios de nombres de .NET
Framework relativos a datos y XML se incluyen:
System.Data: consiste en clases que
constituyen la arquitectura ADO.NET, que es el método principal para tener
acceso a los datos de las aplicaciones administradas. La arquitectura ADO.NET
permite crear componentes que administran eficazmente los datos procedentes de
múltiples orígenes. ADO.NET también proporciona las herramientas necesarias
para solicitar, actualizar y reconciliar datos en aplicaciones distribuidas.
System.Data.Common: contiene clases
que comparten los proveedores de datos .NET Framework. Dichos proveedores
describen una colección de clases que se utiliza para obtener acceso a un
origen de datos, como una base de datos, en el espacio administrado.
System.Xml: contiene clases que
proporcionan funcionalidad basada en estándares para procesar código XML.
System.Data.OleDb: clases que
constituyen el proveedor de datos de .NET Framework para orígenes de datos
compatibles con OLE DB. Estas clases permiten conectarse a un origen de datos
OLE DB, ejecutar comandos en el origen y leer los resultados.
System.Data.SqlClient: clases que
constituyen el proveedor de datos de .NET Framework para SQL Server, que
permite conectarse a un origen de datos SQL Server 7.0, ejecutar comandos y
leer los resultados. El espacio de nombres System.Data.SqlClient es similar al
espacio de nombres System.Data.OleDb, pero se optimiza para el acceso a SQL
Server 7.0 y posterior.
System.Data.Sql: clases que admiten
funcionalidad específica de SQL Server.
System.Data.SqlTypes: proporciona
clases para los tipos de datos nativos de SQL Server. Estas clases proporcionan
una alternativa más rápida y segura a otros tipos de datos.
Microsoft.SqlServer.Server: clases,
interfaces y enumeraciones específicas en la integración de Common Language
Runtime (CLR) de Microsoft .NET Framework en Microsoft SQL Server, y el entorno
de ejecución de procesos del motor de base de datos de SQL Server.
System.Data.Odbc: clases que
constituyen el proveedor de datos de .NET Framework para ODBC. Estas clases
permiten el acceso a orígenes de datos ODBC en el espacio administrado.
System.Data.OracleClient: clases que
constituyen el proveedor de datos de .NET Framework para Oracle. Estas clases
permiten el acceso a orígenes de datos Oracle en el espacio administrado.
System.Transactions: clases que
permiten escribir su propia aplicación transaccional y administrador de
recursos. Específicamente, puede crear y participar en una transacción (local o
distribuida) con uno o varios participantes.
3.SUMMARY
The
.NET Framework namespaces for data and XML include:
System.Data:
consists of classes that make up the ADO.NET architecture, which is the main
method for accessing the data of managed applications. The ADO.NET architecture
allows you to create components that efficiently manage data from multiple
sources. ADO.NET also provides the tools you need to request, update, and
reconcile data in distributed applications.
System.Data.Common:
Contains classes that are shared by .NET Framework data providers. These
providers describe a class collection that is used to access a data source,
such as a database, in the managed space.
System.Xml
contains classes that provide standards-based functionality for processing XML
code.
System.Data.OleDb:
Classes that constitute the .NET Framework data provider for OLE DB-compliant
data sources. These classes connect to an OLE DB data source, execute commands
on the source, and read the results.
System.Data.SqlClient:
Classes that constitute the .NET Framework data provider for SQL Server, which
allow you to connect to a SQL Server 7.0 data source, execute commands, and
read the results. The System.Data.SqlClient namespace is similar to the System.Data.OleDb
namespace, but is optimized for access to SQL Server 7.0 and later.
System.Data.Sql:
Classes that support SQL Server-specific functionality.
System.Data.SqlTypes:
Provides classes for native SQL Server data types. These classes offer a faster
and more secure alternative to other types of data.
Microsoft.SqlServer.Server:
Specific classes, interfaces, and enumerations in Microsoft .NET Framework
Common Language Runtime (CLR) integration in Microsoft SQL Server, and the SQL
Server database engine process execution environment.
System.Data.Odbc:
classes that constitute the .NET Framework data provider for ODBC. These
classes allow access to ODBC data sources in the managed space.
System.Data.OracleClient:
classes that make up the .NET Framework data provider for Oracle. These classes
allow access to Oracle data sources in the managed space.
System.Transactions:
classes that allow you to write your own transactional application and resource
manager. Specifically, you can create and participate in a transaction with one
or more participants.
4.RECOMENDACIONES
Precaución ADO.NET 2.0 no admite los
comandos asincrónicos en la memoria compartida de SQL Server 2000 o inferior.
Sin embargo, puede forzar TCP en lugar de la memoria compartida. Para ello,
ponga el prefijo tcp: delante del nombre del servidor en la cadena de conexión
o puede utilizar el host local.
5.CONCLUSIONES
SqlConnection objeto representa una
sesión única a un SQL Server origen de datos. Con un sistema de base de datos
cliente/servidor, es equivalente a una conexión de red al servidor.
SqlConnectionse utiliza junto con SqlDataAdapter y SqlCommand para aumentar el
rendimiento cuando se conecta a Microsoft SQL Server base de datos. Para todas
las aplicaciones de terceros SQL Server productos y otros orígenes de datos
compatibles con OLE DB, utilizan OleDbConnection.
Cuando se crea una instancia de
SqlConnection, todas las propiedades se establecen en sus valores iniciales.
Para obtener una lista de estos valores, consulte el SqlConnection constructor.
Consulte ConnectionString para
obtener una lista de las palabras clave en una cadena de conexión.
Si la SqlConnection queda fuera del
ámbito, no se cerrará. Por lo tanto, debe cerrar la conexión explícitamente
mediante una llamada a Close o Dispose. Closey Dispose son funcionalmente
equivalentes. Si la agrupación de conexiones de los valores Pooling está
establecido en true o yes, la conexión subyacente se devuelve a la agrupación
de conexiones. Por otro lado, si Pooling está establecido en false o no, la
conexión al servidor subyacente está cerrada realmente.
6.APRECIACIÓN
Los eventos de inicio y cierre de
sesión no se provocarán en el servidor cuando se busque una conexión desde el
grupo de conexiones o se devuelva a éste, puesto que la conexión no está
cerrada realmente cuando se devuelve al grupo de conexiones. Para obtener más
información, consulta Agrupación de conexiones en SQL Server (ADO.NET).
7.LINKOGRAFIA