P. 1
Capitulo 04 - Programacion en ADO

Capitulo 04 - Programacion en ADO

5.0

|Views: 9.082|Likes:
Publicado pornecrotear
ASP.NET Programación con C#
ASP.NET Programación con C#

More info:

Published by: necrotear on Aug 17, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/13/2013

pdf

text

original

Podemos obtener datos de un objeto DataTable usando el método
Select. En este caso, la información es volcada sobre un objeto del tipo matriz
de DataRow. El método Select se comporta de una forma muy similar a la
instrucción Select del T-SQL.

Un ejemplo de aplicación del método Select sería:

DataRow[] Filas =
objDataSet.Tables["Empleados"].Select("IdCategoria = 2");

En este ejemplo obtenemos todas las filas del DataTable Empleados
cuyo valor de IdCategoria sea 2. Las filas coincidentes son guardadas en la
matriz del tipo DataRow Filas.

Capítulo 4. Programación en ADO.

Página 33

Otro ejemplo sería:

DataRow[] Filas = objDataSet.Tables["Empleados"].Select("IdCategoria
= 2 AND NombreEmpleado = 'Miguel Angel'");

En este otro ejemplo, la búsqueda se realizar por el IdCategoria igual a 2
y, por el NombreEmpleado igual a Miguel Angel.

Si deseamos obtener los datos ordenados, podemos incluir el parámetro

Sort del método Select:

DataRow[] Filas = objDataSet.Tables["Empleados"].Select("IdCategoria =
2", "NombreEmpleado DESC");

Este ejemplo ordena los resultados por la columna NombreEmpleado y
de formas descendente (DESC). Por defecto es ascendente.

Otra posibilidad de ordenación sería:

DataRow[] Filas = objDataSet.Tables["Empleados"].Select("IdCategoria =
2", "ApellidosEmpleado ASC, NombreEmpleado ASC");

En este otro caso el resultado es ordenado primeramente por la columna
ApellidosEmpleado de forma ascendente y por la columna NombreEmpleado
de forma también ascendente.

Otra posibilidad es obtener filas que cumplan un criterio basado en si
han sido borradas, modificadas u obtener sus valores originales. Para este
punto disponemos del miembro enumerable DataViewRowState:

DataRow[] Filas = objDataSet.Tables["Empleados"].Select(null, null,
DataViewRowState.Added);

En este ejemplo obtiene todas las filas que fueron añadidas al
DataTable. Las distintas posibilidades del DataViewRowState son:

Valor de DataViewRowState Significado
Added

Fila nueva

CurrentRows

Las filas actuales, incluyendo las
agregadas, modificadas y sin modificar.

Deleted

Fila eliminada

ModifiedCurrent

La versión actual, que es una modificación
de los datos actuales.

ModifiedOriginal

La versión original de todas las filas
modificadas.

OriginalRows

Las filas originales, incluyendo las filas que
fueron eliminadas.

Unchanged

Fila sin modificar.

None

Ninguno

Capítulo 4. Programación en ADO.

Página 34

Parámetros y expresiones válidas en el método Select de los
DataTable:

Para utilizar una columna denominada "Column#" en una expresión, se
deberá escribir "[Column#]". Ejemplo: Total * [Column#]

Puesto que los corchetes son caracteres especiales, se debe utilizar una
barra diagonal ("\") para crear un carácter de escape para el corchete, si forma
parte de un nombre de columna. Por ejemplo, una columna denominada
"Column[ ]" se escribirá: Total * [Column[\]]

Sólo se debe crear un carácter de escape para el segundo corchete.

Valores Definidos por el Usuario

Los valores definidos por el usuario se pueden utilizar en expresiones
para compararlos con valores de columnas. Los valores de cadena se deben
escribir entre comillas sencillas. Los valores de fecha se deben poner entre
signos de libra esterlina (#) o comillas simples (') dependiendo del proveedor de
datos. Se permiten decimales y notaciones científicas para los valores
numéricos. Por ejemplo:

"FirstName = 'John'"

"Precio <= 50.00"

"Fecha < #1/31/2010#"

“Fecha < „31/1/2010‟

Para el caso de las fechas, puede ocurrir que se den errores derivados
del uso de los formatos de fecha en americano o en español. Si usamos
notación americana usaremos las #, pero para el caso de las fechas en español
usamos las comillas simples.

Para las columnas que contienen valores de enumeración, el valor se
convierte en un tipo de datos entero. Por ejemplo:

"EnumColumn = 5"

Operadores

Se permite la concatenación mediante operadores booleanos AND, OR y
NOT. Se pueden utilizar paréntesis para agrupar cláusulas y forzar una
precedencia. El operador AND tiene precedencia sobre otros operadores. Por
ejemplo:

(LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'

Capítulo 4. Programación en ADO.

Página 35

Al crear expresiones de comparación, se permiten los siguientes

operadores:

También se admiten los siguientes operadores aritméticos en las expresiones:

Operadores de Cadena

Para concatenar una cadena se utiliza el carácter +. El valor de la
propiedad CaseSensitive de la clase DataSet determina si en las
comparaciones de cadenas se distingue entre mayúsculas y minúsculas. Sin
embargo, se puede reemplazar ese valor por la propiedad CaseSensitive de la
clase DataTable.

Caracteres Comodín

Tanto * como % se pueden utilizar indistintamente como caracteres
comodín en una comparación LIKE. Si la cadena de una cláusula LIKE
contiene un carácter * o %, dichos caracteres se deben establecer como
caracteres de escape entre corchetes ([]). Si hay un corchete en la cláusula, los
caracteres de corchete se deben establecer como caracteres de escape entre
corchetes (por ejemplo, [[] o []]). Se permite un carácter comodín al comienzo y
al final de un modelo, al final de un modelo o bien al comienzo de un modelo.
Por ejemplo:

"ItemName LIKE '*product*'"

"ItemName LIKE '*product'"

"ItemName LIKE 'product*'"

No se permiten los caracteres comodín en mitad de una cadena. Por
ejemplo, no se admite 'te*xt'.

Capítulo 4. Programación en ADO.

Página 36

Referencia a Relaciones primarias y secundarias

Se puede hacer una referencia a una tabla primaria en una expresión
anteponiendo Parent al nombre de la columna. Por ejemplo, Parent.Precio
hace referencia a la columna denominada Precio de la tabla primaria.

Se puede hacer referencia a una columna de una tabla secundaria en
una expresión anteponiendo Child al nombre de la columna. Sin embargo, dado
que las relaciones secundarias pueden devolver varias filas, se debe incluir la
referencia a la columna secundaria en una función de agregado. Por ejemplo,
Sum(Child.Precio) devolvería la suma de la columna denominada Precio de la
tabla secundaria.

Si una tabla tiene varias tablas secundarias, la sintaxis es:
Child(RelationName). Por ejemplo, si una tabla tiene dos tablas secundarias
denominadas Customers y Orders, y el objeto DataRelation se denomina
Customers2Orders, la referencia sería la siguiente:

Avg(Child(Customers2Orders).Quantity)

Agregados

Se admiten los siguientes tipos de agregados:

Normalmente los agregados se llevan a cabo en las relaciones. Se crea
una expresión de agregado mediante una de las funciones enumeradas
anteriormente y una columna de una tabla secundaria, como se ha descrito en
Referencia a relaciones primarias y secundarias. Por ejemplo:

Avg(Child.Precio)

Avg(Child(Orders2Details).Precio)

Un agregado también se puede realizar en una sola tabla. Por ejemplo,
para crear un resumen de cifras de una columna denominada "Price":

Sum(Precio)

Ver: Uso DataTable-DataSet

Capítulo 4. Programación en ADO.

Página 37

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->