Visual Basic.NET - Filtrar DataSet con Datarow

 
Vista:
sin imagen de perfil

Filtrar DataSet con Datarow

Publicado por SERGIO (7 intervenciones) el 26/06/2015 00:31:30
Hola amigos,

Soy algo inexperto en el tema de programación, pero estoy haciendo una compilación importante y tengo el siguiente problema:

Debo ejecutar consultas del mismo tipo a una misma tabla en una base de datos access, pero esto demora mucho, por lo cual decidí realizar una consulta global y luego filtrar el dataset.

Este es mi código, que ejecuta una consulta a una base de access, hasta ahí no hay problema, la consulta funciona perfectamente, cabe resaltar que posteriormente esta el dispose de dataset y el control de error de la consulta con un try, pero no los pongo aquí para no alargar el mensaje.

1
2
3
4
5
6
7
8
Dim cnn As New OleDbConnection
cnn.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " & ruta_base &"; Persist Security Info = False"
Dim sql As String = "SELECT * FROM AGENDA WHERE(MES = '" & Label1.Text & "' AND ANO = " & Label44.Text & " AND DIA = 1 ") order by hora"
Dim adapter As New OleDbDataAdapter(sql, cnn)
Dim ds As New DataSet
cnn.Open()
adapter.Fill(ds)
cnn.Close()

El problema es cuando incluyo el filtro de datarow:

1
2
Dim dr As DataRow
dr = ds.Tables(0).Select("DIA = 1")

Tambien intente con el nombre de la tabla:

1
2
Dim dr As DataRow
dr = ds.Tables("AGENDA").Select("DIA = 1")

Me aparece el siguiente error:

Un valor de tipo '1-matriz dimensional de System.Data.DataRow' no se puede convertir en 'System.Data.DataRow'.


Les agradezco su colaboración.


Sergio.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Filtrar DataSet con Datarow

Publicado por Miguel (476 intervenciones) el 26/06/2015 07:33:53
Hola,

Coloca (0), para usar el primer item, algo así:

1
dr = ds.Tables("AGENDA").Select("DIA = 1")(0)



Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Filtrar DataSet con Datarow

Publicado por SERGIO (7 intervenciones) el 26/06/2015 07:43:37
Gracias Miguel por tu respuesta,

He probado y me arroja un error de desbordamiento.

Pero me surge otra duda: en el caso en el cual deseo obtener todos los registros resultado del select, ¿como podría hacerlo?, de esta forma solo obtengo el que le indique con el numero de fila, pero no se cuanto son, mi idea era poder hacer un .count sobre el datarow para saber la cantidad de registros que arrojo el select y de esta forma ejecutar un while para traer sucesivamente los datos de cada registro y mostrarlos en los diferentes objetos (Listbox).

No se si para esto necesite utilizar otro tipo de clase, un datagrid o algo así.

Nuevamente gracias.


Sergio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Filtrar DataSet con Datarow

Publicado por Miguel (476 intervenciones) el 26/06/2015 16:51:53
Hola,

Haz una matriz de DataRow (Dim dr() As DataRow) y asígnale los datos del select.


Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar