Académique Documents
Professionnel Documents
Culture Documents
SQL
Lenguaje estndar para acceder a una base de datos relacional, estandarizado por
el American National Standards Institute (ANSI): SQL-92. En gran parte, los
distintos DBMS utilizan todos el mismo SQL, si bien cada vendedor le ha aadido
sus propias extensiones. El lenguaje SQL se divide en:
ADO .NET usa XML. De hecho, los conjuntos de datos se almacenan internamente
en XML, en vez de almacenarse en binario como suceda en ADO. Al estar los datos
almacenados en XML, se simplifica el acceso a los datos a travs de HTTP (algo que
ocasiona problemas en ADO si los datos tienen que pasar cortafuegos). Por otro
lado, se simplifica la comunicacin entre aplicaciones al ser XML un formato
estndar (p.ej. comunicacin con applets Java).
Con ADO .NET se puede acceder a los datos de dos formas distintas:
Arquitectura ADO.NET
El funcionamiento de ADO.NET se basa esencialmente en utilizar los siguientes
componentes:
Clases ADO.NET
ADO .NET define una serie de interfaces que proporcionan la funcionalidad bsica
comn a las distintas fuentes de datos accesibles a travs de ADO .NET. La
implementacin de estos interfaces por parte de cada proveedor proporciona
acceso a un tipo concreto de fuentes de datos y puede incluir propiedades y
mtodos adicionales.
Interfaz IDbConnection
Establece una sesin con una fuente de datos. Permite abrir y cerrar conexiones,
as
como
comenzar
transacciones
(que
se
finalizan
con
los
mtodos Commit y Rollback de IDbTransaction.
Las
clasesSqlDbConnection y OleDbConnection implementan
el
interfaz
de IDbConnection.
Interfaz IDbCommand
Representa una sentencia que se enva a una fuente de datos (usualmente en SQL,
aunque
no
necesariemente).
Las
clases SqlDbCommand y OleDbCommand implementan el interfaz de IDbCommand.
param = insertCommand.Parameters.Add (
new
SqlParameter("@DepartmentName", SqlDbType.VarChar,
100));
param.Value = ...
connection.Open();
insertCommand.ExecuteNonQuery();
connection.Close();
// Llamadas a procedimientos almacenados
// ------------------------------------// C#
string spName = "CREATE_DEPARTMENT"
SqlCommand command = new SqlCommand(spName,
connection);
command.CommandType = CommandType.StoredProcedure;
SqlParameter in = command.Parameters.Add (
new
SqlParameter("@DepartmentName", SqlDbType.VarChar,
100));
in.Value = ...
SqlParameter out = command.Parameters.Add (
new SqlParameter("RETVAL",
SqlDbType.Int));
out.Direction = ParameterDirection.ReturnValue;
connection.Open();
insertCommand.ExecuteNonQuery();
int newID = command.Parameters("RETVAL").Value;
connection.Close();
// SQL Server
// ---------CREATE TABLE [dbo].[Department] (
[DepartmentID] [int] IDENTITY (1, 1) NOT NULL
,
[DepartmentName] [varchar] (100),
[CreationDate] [datetime] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Department] WITH NOCHECK ADD
CONSTRAINT [PK_Department] PRIMARY KEY
CLUSTERED
(
[DepartmentID]
) ON [PRIMARY]
GO
CREATE PROCEDURE dbo.CreateDepartment
@DepartmentName varchar(100),
AS
INSERT INTO Department (DepartmentName,
CreationDate)
VALUES (@DepartmentName, GetDate())
RETURN scope_identity()
GO
Interfaz IDataReader
Proporciona acceso secuencial de slo lectura a una fuente de datos. Las
clases SqlDataReader yOleDbDataReader implementan
el
interfaz
de IDataReader. Al utilizar un objeto IDataReader, las operaciones sobre la
conexin IDbConnection quedan deshabilitadas hasta que se cierre el
objetoIDataReader.
Clase DataSet
Un objeto DataSet encapsula un conjunto de tablas independientemente de su
procedencia y mantiene las relaciones existentes entre las tablas. El contenido de
un DataSet puede serializarse en formato XML. Adems, se permite la
modificacin dinmica de los datos y metadatos del conjunto de datos representado
por el objeto DataSet.
El
interfaz IDataAdapter implementado OleDbDataAdapter y SqlDataAdapter se
utiliza para construir el conjunto de datos y actualizarlo cuando sea necesario. Los
conjuntos de datos con los que se trabaja de esta forma utilizan un enfoque
asncrono en el que no se mantiene abierta la conexin con la base de datos a la
que se est accediendo. Al trabajar con conjuntos de datos de esta forma, se
dispone de un superconjunto de los comandos que se permiten cuando se emplea
el interfaz IDataReader. De hecho se pueden realizar operaciones de consulta
(select), insercin (insert), actualizacin (update) y borrado (delete).
Clase DataTable
Representa una tabla en memoria (Columns & Rows) cuyo esquema viene definido
por su coleccin de columnas Columns. La integridad de los datos se conserva
gracias a objetos que representan restricciones ( Constraint) y dispone de
eventos pblicos que se producen al realizar operaciones sobre la tabla (p.ej.
modificacin o eliminacin de filas).
Clase DataColumn
Define el tipo de una columna de una tabla (va su propiedad DataType) e incluye
las restricciones (Constraints) y las relaciones (Relations) que afectan a la
columna.
Adems,
posee
propiedades
tiles
como AllowNull, Unique o ReadOnly.
Clase DataRow
Representa los datos de una tabla (almacenados en la coleccin Rows de un
objeto DataTable), de acuerdo con el esquema definido por las columnas de la
tabla (Columns). Adems, incluye propiedades para determinar el estado de una
fila/tupla particular (p.ej. nuevo, cambiado, borrado, etc.).
Clase DataRelation
Transacciones en ADO.NET
Las transacciones son conjuntos de operaciones que han de efectuarse de forma
atmica. La acidez de una transaccin hace referencia a sus propiedades deseables:
atomicidad, consistencia, aislamiento y durabilidad (ACID = Atomicity, Consistency,
Isolation, Durability).
En ADO.NET, los lmites de las transacciones se indican manualmente. Los objetos
de la clase Connectiontienen un mtodo BeginTransaction que devuelve una
transaccin (objeto de tipo Transaction). La transaccin finaliza cuando se llama
al
mtodo Commit o Rollback del
objeto Transaction devuelto
porBeginTransaction.
Data Binding
ste es el nombre por el que se conoce el mecanismo que nos permite asociar el
contenido de un conjunto de datos a los controles de la interfaz de nuestra
aplicacin, algo que facilitan los entornos de programacin visual (como es el caso
del Visual Studio .NET).
Data Binding en Visual Studio .NET
Se puede optar por asistentes del tipo de DataForm wizard... o, cuando stos
no nos ofrecen la funcionalidad suficiente para nuestras aplicaciones, podemos
programarlo nosotros mismos (algo que no es difcil y nos da bastante ms
control sobre nuestra aplicacin):
2En
Dataset
Un DataSet guarda informacin en un entorno desconectado. Despus de que usted establece una
conexin con una Base de Datos entonces puede acceder a sus datos.
Practicamente un DataSet viene a ser una cach de memoria interna de datos recuperados de un origen
de datos, representa un componente fundamental de la arquitectura de ADO.NET. As mismo un DataSet
est compuesto por una coleccin de objetos DataTable que se pueden relacionar entre ellos mediante
objetos DataRelation. Tambin se puede imponer la integridad de los datos de DataSet mediante los
objetos UniqueConstraint y ForeignKeyConstraint.
El Dataset est formado por uno o ms objetos de tipo DataTables. fue pensado para acceder a datos
independientemente del origen. Por ejemplo, un DataSet puede obtener datos de SQL Server, Oracle o de
un archivo XML. Puede utilizar un objeto llamada DataView para ver los datos de distintas maneras.
Mientras que los objetos DataTable contienen los datos, DataRelationCollection permite desplazarse por la
jerarqua de la tabla. Las tablas estn incluidas en un DataTableCollection al que se obtiene acceso a
travs de la propiedad Tables. Al obtener acceso a los objetos DataTable, hay que tener en cuenta que
stos distinguen entre maysculas y minsculas condicionalmente. Por ejemplo, si un objeto DataTable se
denomina "mydatatable" y otro "Mydatatable", se considerar que una cadena utilizada para buscar una
de las tablas distingue entre maysculas y minsculas. Sin embargo, si existe "mydatatable" pero no
existe "Mydatatable", se considerar que la cadena de bsqueda no distingue entre maysculas y
minsculas. Para mejor comprensin de la importancia del DataSet, vea el artculo Mejorando el
rendimiento de la aplicacin trabajando en modo desconectado en la cual se detalla de forma clara
mediante un ejemplo cmo se obtiene beneficios usando el DataSet.
Un DataSet puede leer y escribir datos y esquemas como documentos XML. Los datos y esquemas pueden
transportarse, a continuacin, a travs de HTTP y cualquier aplicacin puede utilizarlos en cualquier
plataforma que sea compatible con XML. Los esquemas se pueden guardar como esquemas XML mediante
el mtodo WriteXmlSchema, y tanto los esquemas como los datos se pueden guardar mediante el mtodo
WriteXml. Hay que utilizar el mtodo ReadXml para leer un documento XML que incluya esquema y datos.
El DataSet es la principal forma de guardar datos cuando usted utiliza ADO.NET El DataSet le permite a
usted guardar datos que se obtuvieron de un origen de datos. Los datos en un DataSet pueden ser
manipulados sin necesidad que el formulario Web mantenga la conexin con el origen de datos. La
conexin se reestablece recin cuando usted necesita actualizar los cambios.
Hay tpicamente 3 pasos para acceder a los datos.
1. Acceder al Origen de Datos y mostrar los datos en el formulario Web
2. Manipular los Datos
3. Retornar los datos para actualizar la base de datos
Muchos de ustedes amigos lectores deben estar preguntando: y los mtodos? y las propiedades? del
DataSet, para buena suerte anteriormente publiqu un artculo sobre el uso del Dataset y el
DataAdapter donde explico muchas de las propiedades y mtodos del DataSet, as que visita este
artculo.
Puede hacer click aqu para ver un apndice sobre ActiveX Data Object, donde se detalla muchos de las
propiedades, mtodos y eventos.
DataTableCollection (Clase)
.NET Framework 4.5
Otras versiones
Jerarqua de herencia
System.Object
System.Data.InternalDataCollectionBase
System.Data.DataTableCollection
Espacio de nombres: System.Data
Ensamblado: System.Data (en System.Data.dll)
Sintaxis
C#
C++
F#
VB
[ListBindableAttribute(false)]
public sealed class DataTableCollection : InternalDataCollectionBase
El tipo DataTableCollection expone los siguientes miembros.
Propiedades
Mostrar:
Heredado
Protegido
Nombre
Descripcin
Count
deInternalDataCollectionBase).
IsReadOnly
IsSynchronized
Item[Int32]
Item[String]
Item[String,
String]
SyncRoot
Arriba
Mtodos
Mostrar:
Heredado
Protegido
Nombre
Descripcin
Add()
Add(DataTable)
Add(String)
la coleccin.
Add(String, String)
AddRange
CanRemove
Clear
Contains(String)
Contains(String,
String)
CopyTo(Array, Int32)
CopyTo(DataTable[],
Int32)
Equals(Object)
GetEnumerator
deInternalDataCollectionBase).
GetHashCode
GetType
IndexOf(DataTable)
IndexOf(String)
IndexOf(String,
String)
Remove(DataTable)
Remove(String)
Remove(String,
String)
RemoveAt
ToString
Arriba
Eventos
Mostrar:
Heredado
Protegido
Nombre
Descripcin
CollectionChanged
CollectionChanging
Arriba
Comentarios
La coleccin DataTableCollection contiene todos los objetos DataTable para un
objeto DataSet concreto. Para obtener acceso a DataTableCollection de un DataSet,
utilice la propiedad Tables.
DataTableCollection utiliza mtodos como Add, Clear y Remove para administrar los
elementos de la coleccin.
Utilice el mtodo Contains para determinar si una tabla concreta (especificada
por ndice o por nombre) se encuentra en la coleccin.
Para navegar de una tabla a otra, utilice las
propiedades ChildRelations o ParentRelations de DataTable para obtener acceso a su
coleccin de objetos DataRelation. Tambin puede utilizar la
propiedad Relations para navegar en las relaciones primarias y secundarias de
las DataTables de una coleccin DataSet concreta.
Ejemplos
En el primer procedimiento de este ejemplo se recupera la
coleccin DataTableCollection de un objeto DataSet y se imprime el valor de cada
columna, en cada fila, de cada tabla. En el segundo procedimiento se crea un
nuevo objeto DataTable con dos columnas y se agrega a DataTableCollection.
C#
VB
private void GetTables(DataSet dataSet)
{
// Get Each DataTable in the DataTableCollection and
// print each row value.
foreach (DataTable table in dataSet.Tables)
foreach (DataRow row in table.Rows)
Informacin de versin
.NET Framework
Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0
Plataformas
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se
admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o
versiones posteriores; no se admite Itanium)
.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista
de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Vea tambin
Referencia
System.Data (Espacio de nombres)
DataColumn
DataRow
DataTable
DataSet
DataAdapter en ASP.NET
FillSchema Este mtodo consulta la base de datos de informacin de esquema de ser necesario. Esto inclu
configurar el mtodo Fill para recuperar esta informacin de esquema adicional, establezca el
MissingSchemaAction.AddWithKey.
Update
NorthWind
...
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
'Conectando a la base de datos NorthWind
Dim cn As New SqlConnection("DataBase=NorthWind; Server=.; uid=sa; pw d=sql")
Dim strSQL As String
'Listar los Customers
strSQL = "Select * from Customers"
Dim daEmp As New SqlDataAdapter(strSQL, cn)
Dim dtEmp As New DataTable
daEmp.Fill(dtEmp)
DataGridView 1.DataSource=dtEmp
End Sub
DataReader en ASP.NET
Puede utilizar el mtodo Read del objeto DataReader para obtener una fila a partir de los resul
pasar a DataReader el nombre o referencia numrica de la columna en cuestin. Para tener acc
GetDouble, GetGuid, GetInt32, etc).
Close
Siempre debe llamar al mtodo Close cuando haya terminado de utilizar el objeto DataReader
NextResult El DataReader proporciona el mtodo NextResult para recorrer los conjuntos de resultados en
DataAdapter
En ADO.NET, un DataAdapter funciona como un puente entre un origen de datos y una clase
de datos desconectado, como un conjunto de datos . Al nivel ms simple especificar
comandos SQL que proporcionan funcionalidad CRUD elemental. En un nivel ms avanzado
que ofrece todas las funciones necesarias para crear conjuntos de datos de establecimiento
inflexible de tipos , incluyendo DataRelations . Adaptadores de datos son una parte integral de
ADO.NET gestionado proveedores , que son el conjunto de objetos que se utilizan para la
comunicacin entre una fuente de datos y un conjunto de datos. ( Adems de los adaptadores
, los proveedores administrados incluyen objetos de conexin , objetos de lector de datos y
objetos de comando . ) Los adaptadores se utilizan para el intercambio de datos entre un
origen de datos y un conjunto de datos . En muchas aplicaciones , esto significa la lectura de
los datos de una base de datos en un conjunto de datos , y luego escribiendo los datos
modificados desde el conjunto de datos en la base de datos . Sin embargo , un adaptador de
datos puede mover datos entre cualquier fuente y un conjunto de datos . Por ejemplo , podra
haber un adaptador que mueve datos entre un servidor de Microsoft Exchange y un conjunto
de datos.
objetos datareader
ADO.NET es una evolucin del modelo de acceso a datos de ADO que controla directamente los
requisitos del usuario para programar aplicaciones escalables. Se dise especficamente para el Web,
teniendo en cuenta la escalabilidad, la independencia y el estndar XML.
ADO.NET utiliza algunos objetos ADO, como Connection y Command, y tambin agrega objetos
nuevos. Algunos de los nuevos objetos clave de ADO.NET son DataSet, DataReader y DataAdapter.
La diferencia ms importante entre esta fase evolucionada de ADO.NET y las arquitecturas de datos
anteriores es que existe un objeto, DataSet, que es independiente y diferente de los almacenes de datos.
Por ello, DataSet funciona como una entidad independiente. Se puede considerar el objeto DataSet como
un conjunto de registros que siempre est desconectado y que no sabe nada sobre el origen y el destino
de los datos que contiene. Dentro de un objeto DataSet, de la misma manera que dentro de una base de
datos, hay tablas, columnas, relaciones, restricciones, vistas, etc.
El objeto DataAdapter es el objeto que se conecta a la base de datos para llenar el objeto DataSet. A
continuacin, se vuelve a conectar a la base de datos para actualizar los datos de dicha base de datos
a partir de las operaciones realizadas en los datos contenidos en el objeto DataSet. En el pasado, el
procesamiento de datos se basaba principalmente en la conexin. Ahora, con el fin de proporcionar a las
aplicaciones multinivel mayor eficacia, se est adoptando para el procesamiento de datos un enfoque
basado en mensajes que manipulan fragmentos de informacin. En el centro de este enfoque se sita el
objeto DataAdapter, que proporciona un puente entre un objeto DataSet y un almacn de datos de origen
para recuperar y guardar datos. Para ello, enva solicitudes a los comandos SQL apropiados que se
ejecutan en el almacn de datos.
El objeto DataSet basado en XML proporciona un modelo de programacin coherente que funciona con
todos los modelos de almacenamiento de datos: sin formato, relacional o jerrquico. Funciona sin tener
'conocimiento' del origen de los datos y representa a los datos que contiene como colecciones y tipos de
datos. Independientemente del origen de los datos del objeto DataSet, stos se manipulan mediante el
mismo conjunto de API estndar expuestas a travs del objeto DataSet y sus objetos subordinados.
Aunque el objeto DataSet no tiene conocimiento del origen de sus datos, el proveedor administrado tiene
informacin detallada y especfica. La funcin del proveedor administrado es conectar, llenar y almacenar
el objeto DataSet desde almacenes de datos (o viceversa). Los proveedores de datos OLE DB y SQL
Server de .NET (System.Data.OleDb y System.Data.SqlClient) que forman parte de .Net Framework
proporcionan cuatro objetos bsicos: Command, Connection, DataReader y DataAdapter. En el resto
de las secciones de este documento, se describir cada parte del objeto DataSet y los proveedores de
datos OLE DB y SQL Server de .NET, con el fin de explicar qu son y cmo se pueden utilizar al
programar.
En las siguientes secciones se presentarn algunos objetos que han evolucionado desde
la tecnologa anterior y otros objetos nuevos. Los objetos son los siguientes:
Objetos Connection. Para conectar con una base de datos y administrar las transacciones en una base
de datos.
Objetos Command. Para emitir comandos SQL a una base de datos.
Objetos DataReader. Proporcionan una forma de leer una secuencia de registros de datos slo hacia
delante desde un origen de datos SQL Server.
Objetos DataSet. Para almacenar datos sin formato, datos XML y datos relacionales, as como para
configurar el acceso remoto y programar sobre datos de este tipo.
Objetos DataAdapter. Para insertar datos en un objeto DataSet y reconciliar datos de la base de datos.
Nota al trabajar con conexiones a una base de datos, hay dos opciones diferentes: un proveedor de datos
de SQL Server de .NET (System.Data.SqlClient) y un proveedor de datos OLE DB de .NET
(System.Data.OleDb). En estos ejemplos se utilizar el proveedor de datos SQL Server de .NET. Estn
programados para comunicarse directamente con Microsoft SQL Server. El proveedor de datos OLE DB
de .NET se utiliza para comunicarse con cualquier proveedor OLE DB (ya que utiliza OLE DB como
tecnologa subyacente).
Conexiones
Para establecer la comunicacin con bases de datos, se utilizan las conexiones y se representan
mediante clases especficas de proveedor, como SQLConnection. Los comandos viajan por las
conexiones y devuelven conjuntos de resultados en forma de secuencias que puede leer un
objeto DataReader o que se pueden insertar en un objeto DataSet.
En el ejemplo siguiente se muestra la forma de crear un objeto de conexin. Las conexiones se pueden
abrir explcitamente mediante llamadas al mtodo Open de la conexin; tambin se pueden abrir
implcitamente al utilizar un objeto DataAdapter.
Para ver el grfico seleccione la opcin "Descargar" del men superior
VB AdoOverview1.aspx
[] | [Ver cdigo fuente]
Comandos
Los comandos contienen la informacin que se enva a una base de datos y se representan mediante
clases especficas de un proveedor, como SQLCommand. Un comando podra ser una llamada a
un procedimiento almacenado, una instruccin UPDATE o una instruccin que devuelve resultados.
Tambin es posible utilizar parmetros de entrada o de resultados y devolver valores como parte de la
sintaxis del comando. En el ejemplo siguiente se muestra la forma de ejecutar una instruccin INSERT en
la base de datos Northwind.
Para ver el grfico seleccione la opcin "Descargar" del men superior
VB AdoOverview2.aspx
[Ejecutar ejemplo] | [Ver cdigo fuente]
Objetos DataReader
El objeto DataReader es, en cierto modo, sinnimo de un cursor de slo lectura y slo hacia delante para
datos. La API de DataReader es compatible con datos sin formato y con datos jerrquicos. Cuando se
ejecuta un comando en la base de datos, se devuelve un objeto DataReader. El formato del
objeto DataReader devuelto es distinto de un conjunto de registros. Por ejemplo, podra utilizarse el
objeto DataReader para mostrar los resultados de una lista de bsqueda en una pgina Web.
Para ver el grfico seleccione la opcin "Descargar" del men superior
VB AdoOverview3.aspx
[Ejecutar ejemplo] | [Ver cdigo fuente
Objetos DataSet y DataAdapter
Objetos DataSet
El objeto DataSet es similar al objeto Recordset de ADO, pero ms eficaz y con una diferencia
importante: DataSet siempre est desconectado. El objeto DataSet representa a una memoria cach de
datos, con estructuras anlogas a las de una base de datos, como tablas, columnas, relaciones y
restricciones. Sin embargo, aunque se puede utilizar un objetoDataSet como una base de datos (y
su comportamiento es muy similar), es importante recordar que los objetos DataSet no interactan
directamente con bases de datos ni con otros datos de origen. Esto permite al programador trabajar con
un modelo de programacin que siempre es coherente, independientemente de dnde resida el origen de
datos. En los objetos DataSet se pueden colocar datos provenientes de una base de datos,
un archivo XML, cdigo o informacin escrita por el usuario. A continuacin, a medida que se realizan
cambios en el objeto DataSet, se puede hacer un seguimiento y una comprobacin de los cambios antes
de actualizar los datos de origen. El mtodo GetChanges del objeto DataSet creaen realidad otro
objeto DataSet que slo contiene los cambios realizados en los datos. Posteriormente, un
objeto DataAdapter u otros objetos, utilizan este objeto DataSet para actualizar el origen de datos
original.
El objeto DataSet tiene muchas caractersticas de XML, incluida la capacidad de producir y consumir
datos XML y esquemas XML. Los esquemas XML se pueden utilizar para describir esquemas
intercambiables a travs de servicios Web. De hecho, un objeto DataSet con un esquema puede
compilarse con seguridad de tipos y finalizacin automtica de instrucciones.
Objetos DataAdapter (OLEDB/SQL)
El objeto DataAdapter funciona como un puente entre el objeto DataSet y los datos de origen. El uso del
objeto SqlDataAdapter especfico del proveedor (junto con los
objetos SqlCommand y SqlConnection asociados) permite aumentar el rendimiento global al trabajar
con bases de datos de Microsoft SQL Server. Para otras bases de datos compatibles con OLE DB, se
debe utilizar el objeto OleDbDataAdapter y los objetos OleDbCommand y OleDbConnection asociados.
El objeto DataAdapter utiliza comandos para actualizar el origen de datos despus de hacer
modificaciones en el objeto DataSet. Si se utiliza el mtodo Fill del objetoDataAdapter, se llama al
comando SELECT; si se utiliza el mtodo Update se llama al comando INSERT, UPDATE o DELETE
para cada fila modificada. Es posible establecer explcitamente estos comandos con el fin de controlar las
instrucciones que se utilizan en tiempo de ejecucin para resolver cambios, incluido el uso
de procedimientos almacenados. En escenarios ad-hoc, un objeto CommandBuilder puede generarlos
en tiempo de ejecucin a partir de una instruccin de seleccin. Sin embargo, para generar en tiempo de
ejecucin hay que hacer unviaje de ida y vuelta adicional al servidor con el fin de recopilar los metadatos
necesarios; por tanto, si se proporcionan explcitamente los comandos INSERT, UPDATE y DELETE en
tiempo de diseo, el rendimiento en tiempo de ejecucin mejorar.
SqlConnection myConnection = new
SqlConnection("server=(local)\VSdotNET;Trusted_Connection=yes;database=northwind");
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter("select * from customers", myConnection);
mySqlDataAdapter.InsertCommand.CommandText = "sp_InsertCustomer";
mySqlDataAdapter.InsertCommand.CommandType = CommandType.StoredProcedure;
mySqlDataAdapter.DeleteCommand.CommandText = "sp_DeleteCustomer";
mySqlDataAdapter.DeleteCommand.CommandType = CommandType.StoredProcedure;
mySqlDataAdapter.UpdateCommand.CommandText = "sp_UpdateCustomers";
mySqlDataAdapter.UpdateCommand.CommandType = CommandType.StoredProcedure;
Dim myConnection As SqlConnection = New
SqlConnection("server=(local)\VSdotNET;Trusted_Connection=yes;database=northwind")
Dim mySqlDataAdapter As SqlDataAdapter = New SqlDataAdapter("select * from customers",
myConnection)
mySqlDataAdapter.InsertCommand.CommandText = "sp_InsertCustomer"
mySqlDataAdapter.InsertCommand.CommandType = CommandType.StoredProcedure
mySqlDataAdapter.DeleteCommand.CommandText = "sp_DeleteCustomer"
mySqlDataAdapter.DeleteCommand.CommandType = CommandType.StoredProcedure
mySqlDataAdapter.UpdateCommand.CommandText = "sp_UpdateCustomers"
mySqlDataAdapter.UpdateCommand.CommandType = CommandType.StoredProcedure
C#
VB
mySqlDataAdapter.Update(myDataSet);
mySqlDataAdapter.Update(myDataSet)
C#
VB
DataAdapter DataReader
El objeto DataAdapter .NET de proveedor de datos est ajustado para leer registros en un objeto
DataSet y actualiza la base de datos del DataSet. El DataAdapter administra objetos Command y
DataReader y simplifica el proceso de sincronizacin. Puede utilizar el objeto
OleDbDataAdapter para rellenar un DataSet de un objeto Recordset Microsoft ActiveX Data
Objects (ADO) o Registro.
El objeto DataAdapter es slo una forma de que transfiere datos entre una base de datos y
DataSet. Si necesita ms control a la funcionalidad de relleno o actualizacin, puede escribir una
funcin personalizada para administrar este proceso y manipular directamente el Command y
los objetos DataReader.
La recuperacin de datos mediante DataReader implica crear una instancia del objeto
Command y de un DataReader a continuacin, para lo cual se llama a Command.ExecuteReader
a fin de recuperar filas de un origen de datos.
DataReader proporciona una secuencia de datos sin bfer que permite a la lgica de los
procedimientos procesar eficazmente y de forma secuencial los resultados procedentes de un
origen de datos. DataReader es la mejor opcin cuando se trata de recuperar grandes cantidades
de datos, ya que stos no se almacenan en la memoria cach.
Preguntas a comentar
Cuando seria conveniente utilizar un DataReader para recuperar y mostrar los datos de una base
de datos y cuando seria factible utilizar un DataAdapter para recuperar los datos en un DataSet.
Dar un ejemplo de este tema.
PUBLICADO POR DAMASO LOPEZ EN 08:27
17 COMENTARIOS:
ricardo dijo...
Como se puede apreciar en la exlicacion, un DataAdapter es necesario al momento de
realizar e identificar registros para poder realizarles las acciones deseadas como una
insercion, eliminacion o actualizacion segun sea el caso, que va a ser guardado o leido en
un dataset con el cual se comunica y realiza sus aperaciones con la bd, mientras que un
datareader no necesita de dicha identificacion primaria la cual solo va a servir para
recuperar informaciones muy grandes la cual simplifica la labor por no gudarse en
memoria.
20 DE JUNIO DE 2008 10:04
Sammy dijo...
Primera Pregunta:
Cuando seria conveniente utilizar un DataReader para recuperar y
mostrar los datos de una base de datos y cuando seria factible utilizar un
DataAdapter para recuperar los datos en un DataSet.
Dar un ejemplo de este tema
DataReader:
- Ya que el DataReader es un sinonimo de un cursor de solo lectura, podramos poner el
sigueinte ejemplo: Podra utilizarse el objeto DataReader para mostrar los resultados de
una lista de bsqueda en una pgina Web
DataAdapter:
- Ya que el DataAdapter funciona como un puente entre el objeto DataSet y los datos de
origen, se podra dar el sigueinte ejemplo: Actualizacin, eliminacin y agregacin de
registros de un usuario.
ATTE:
El dataReader sirve para traer una consulta y recorrera linea por linea
El dataadapter sirve para traer una consulta pero te trae un dataset tambien se puede
recorrer las filas pero es mas complicado
20 DE JUNIO DE 2008 20:54
"cuando seria factible utilizar un DataAdapter para recuperar los datos en un DataSet." :
un caso podria ser cuando se tiene distintos origenes de datos en el DataSet, se podrian
utilizar varios DataAdapter para ocuparse de la comunicacion con cada origen de datos.
23 DE JUNIO DE 2008 14:30
Roxana_Chero dijo...
DataAdapter dispone de cuatro propiedades que se utilizan para recuperar y actualizar
datos en un origen de datos: la propiedad SelectCommand devuelve datos a partir del
origen de datos; las propiedadesInsertCommand, UpdateCommand y DeleteCommand
se utilizan para administrar cambios en el origen de datos. La propiedad
SelectCommand se debe establecer antes de llamar al mtodo Fill de DataAdapter. Es
necesario establecer las propiedades InsertCommand, UpdateCommand o
DeleteCommand antes de llamar al mtodo Update del DataAdapter, en funcin de las
modificaciones realizadas en los datos en el DataSet.
24 DE JUNIO DE 2008 18:23
Llenar un DataSet con 10.000 registros es mucho trabajo. Debido a que esto se
almacena en la PC del Servidor, entonces supongamos que tienes 100 usuarios que
estn pidiendo la misma data y el peso del dataSet es de 512 k. Multiplicando 512 k por
100 usuarios = 51.200 Kb (51 Mb Aprox.)
Annimo dijo...
Un DataReader puede ser muy til para cuestiones de migracin de datos, de un orgen
a otro.
Formularios!!!
UTILIZACION DE MULTIPLES
FORMULARIOS
Para utilizar varios formularios en nuestra aplicacin tendremos que
aadir cada uno de ellos mediante la opcin de men Insert /
Form o pulsando sobre el botn
Mtodo Show
Para llamar a un formulario desde el cdigo utilizaremos el
mtodo Show. Si el formulario 2 tiene en la propiedad Nameform2,
para llamarlo desde otro formulario pondremos:
Form2.Show
vbModeless
No modal
vbModal
Modal
Ejemplo:
Form2.Show vbModal
Sentencia Load
La sentencia Load seguida del nombre de un formulario
provoca que se cargue el formulario en memoria pero sin
visualizarse, ya que la propiedad Visible se coloca a False.
Ejemplo
Load Form2
Sentencia Unload
Nos permite descargar un formulario de la memoria. Se
introduce junto al nombre del formulario que vayamos a
descargar:
Unload Form2
FORMULARIOS
Los formularios son tratados como controles con sus
propiedades, eventos y mtodos. Aunque digamos que se
trata de un control especial que utilizamos para contener los
controles ms usuales con los que construiremos nuestras
aplicaciones: textbox, label, commandbutton, etc...
En este captulo vamos a ver las propiedades y eventos ms
importantes de los formularios, como trabajar con mltiples
formularios y como se establece la comunicacin entre ellos.
Propiedades
Las propiedades ms comunes de los formularios y que son
similares al resto de los controles son las siguientes:
Name: Nombre del formulario, necesario para llamar al
formulario desde el cdigo.
Caption: Texto que aparece en el ttulo del formulario
Backcolor: Color de fondo del formulario.
Forecolor: color del texto del formulario.
2 - Maximizado.
MinButton y MaxButton: Son dos propiedades que admiten
nicamente los valores True o False. Permiten que queden
habilitados los botones minimizar y maximizar,
respectivamente de un formulario.Nos sirven para controlar
que el usuario no pueda cambiar el tamao en que
presentemos un formulario en pantalla.Si slo desactivamos
una de las propiedades, el botn correspondiente aparecer
desactivado, pero si desactivamos las dos propiedades, no
aparecer ninguno de los 2 botones, nicamente lo har el
botn con la "x" de cerrar.
MinButton = Tr MinButton = Fa MinButton = Tr MinButton = Fa
ueMaxButton
lseMaxButton ueMaxButton = lseMaxButton
= True
= True
False
= False
0- None
Utilidad
No aparecen bordes ni
barra de titulo. No
podemos modificar su
Fals Fals
tamao de ninguna
e
e
forma. Sirve para
pantallas de presentacin
False
Muestra
al principio de nuestra
aplicacin
No se puede cambiar su
tamao.Ni siquiera se
puede maximizar
haciendo doble click
1 - Fixed sobre la barra del ttulo,
Fals Fals
Single
algo que s se puede
e
e
hacer desactivando los
botonesMinButton y MaxB
utton en un formulario
normal
True
True
2Sizable
(aparece
por
defecto)
No se puede cambiar su
3 - Fixed
tamao y no aparece en
Dialog
la barra de tareas
Fals Fals
e
e
False
False
5Sizable
ToolWind
ow
False
UTILIZACION DE MULTIPLES
FORMULARIOS
Mtodo Show
Para llamar a un formulario desde el cdigo utilizaremos el
mtodo Show. Si el formulario 2 tiene en la propiedad Nameform2,
para llamarlo desde otro formulario pondremos:
Form2.Show
vbModeless
No modal
vbModal
Modal
Ejemplo:
Form2.Show vbModal
Sentencia Load
La sentencia Load seguida del nombre de un formulario
provoca que se cargue el formulario en memoria pero sin
visualizarse, ya que la propiedad Visible se coloca a False.
Ejemplo
Load Form2
Sentencia Unload
Nos permite descargar un formulario de la memoria. Se
introduce junto al nombre del formulario que vayamos a
descargar:
Unload Form2
COMUNICACION ENTRE
FORMULARIOS
Desde un formulario se puede tener acceso a los controles y
propiedades de otro formulario.
En lugar de realizar el paso de parmetros cuando se llama a
otro formulario que queremos que aparezca con unos
determinados valores iniciales, lo que se hace es acceder a
los controles del otro formulario y despus mostrarlo
mediante el mtodo Show.
System.Drawing
Nota:
Si sabes de alguna colaboracin o artculo (en este
sitio) que incluya clases de System.Drawing, por
favor comuncamelo indicando la URL de dicho
artculo (o artculos).
Ya sabes, me mandas un mensaje indicando la URL
(pero que sea de mi sitio, no de otros sitios...)
Gracias.
...
Contenido de System.Drawing
Las clases, interfaces, estructuras, delegados y enumeraciones que contiene este
espacio de nombres (segn la documentacin de Visual Studio .NET)
Pulsa aqu si quieres ver la informacin (en Internet) de este espacio de nombres.
Clases:
Estructuras:
Delegados:
Enumeraciones: