Foros del Web » Programación para mayores de 30 ;) » .NET »

Buscar valor en DataSet

Estas en el tema de Buscar valor en DataSet en el foro de .NET en Foros del Web. Buen día gente, por aquí con una pregunta... Necesito saber como buscar un cierto valor en una Tabla dentro de un DataSet. Recuerdo que en ...
  #1 (permalink)  
Antiguo 28/06/2005, 19:48
 
Fecha de Ingreso: octubre-2003
Ubicación: Los Mochis, México.
Mensajes: 81
Antigüedad: 20 años, 6 meses
Puntos: 0
Sonrisa Buscar valor en DataSet

Buen día gente, por aquí con una pregunta...
Necesito saber como buscar un cierto valor en una Tabla dentro de un DataSet. Recuerdo que en windows con Delphi utilizaba un método Locate, o algo por el estilo, que posicionaba el cursor donde se encontraba dicho valor.
Ahora estoy con ASP.NET 2.0, ya tengo el DataSet con la información, el campo donde quiero buscar es un unique (osea que no se repiten valores), mas sin embargo, como lo hago?...

Alguna guía o tip?...

Mil gracias de antemano...
__________________
Te amo flakita (jrk)
  #2 (permalink)  
Antiguo 29/06/2005, 01:28
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
en el dataset, tendrás datatables, pues estos, tienen una función llamada select que es como un especie de sql (aunque más garrulilla), p.ej.

myds.Tables("mytable").Select("id=3")(0)("nombre")

esto te devolvería el campo nombre de la fila con id=3 de la tabla mytable.
  #3 (permalink)  
Antiguo 29/06/2005, 01:38
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 6 meses
Puntos: 1
Y ese (0) que significa?
  #4 (permalink)  
Antiguo 29/06/2005, 01:58
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
el select devuelve un array, el 0 significa la primera posicion, puesto que si el id es único solo encontrará uno, si ubiese más puedes recorrelo como un array:

dim filas() as datarow = myds.Tables("mytable").Select("nombre='juan'")(0)( "nombre")
dim i as integer = 0
while i < filas.length
...
i+=1
end while
  #5 (permalink)  
Antiguo 29/06/2005, 03:24
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 6 meses
Puntos: 1
ah es verdad, no he dicho nada ;)
  #6 (permalink)  
Antiguo 29/06/2005, 14:33
 
Fecha de Ingreso: octubre-2003
Ubicación: Los Mochis, México.
Mensajes: 81
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias Jose, el método Select permite hacer una "subconsulta" sobre los Rows que ya están en el DataSet, y bueno...que a fin de cuentas sirve perfectamente para lo que necesito, mas sin embargo hago el comentario de que es posible utilizar el método Find como el ejemplo a continuación.


string n = "primaryKeyValue to be found";
//Se declara una variable del tipo DataRow
//y buscas dentro de la tabla
DataRow rowf = anyTable.Rows.Find(n);
if (rowFoundRow != null) //en caso de que encuentra el valor
{
//etc..
}

Gracias por su aportación...estoy para servirles.
Saludos!
__________________
Te amo flakita (jrk)
  #7 (permalink)  
Antiguo 29/06/2005, 14:36
 
Fecha de Ingreso: octubre-2003
Ubicación: Los Mochis, México.
Mensajes: 81
Antigüedad: 20 años, 6 meses
Puntos: 0
Sonrisa

perdon...hay un error en el código
va de nuez...
string n = "primaryKeyValue to be found";
//Se declara una variable del tipo DataRow
//y buscas dentro de la tabla
DataRow rowf = anyTable.Rows.Find(n);
if (rowf != null) //en caso de que encuentra el valor
{
//etc..
}

listo el pollo!!
__________________
Te amo flakita (jrk)
  #8 (permalink)  
Antiguo 30/06/2005, 01:20
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 6 meses
Puntos: 1
Pero el "find" solo sirve para buscar por la clave primaria no?
  #9 (permalink)  
Antiguo 30/06/2005, 01:29
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Exacto, si no es por clave primaria debes utilizar el select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:58.