[VB.NET] Query su DataTable

giovedì 19 giugno 2008 - 10.04

brazero Profilo | Junior Member

Ciao,

qualcuno sa in che modo posso fare delle query su un datatable??
mi spiego.. ho un dataset al quale ho popolato con i dati di active directories, per il quale ho costruito un oggettino che tira giù i dati in maniera molto elementare.. i campi sono: nome, cognome, città e numero telefono.. e quindi avrei bisogno di creare dei filtri per la ricerca degli utenti..
come potrei procedere?

Grazie

PS: uso Visual Basic 2008 Express Edition


mmsoftware Profilo | Newbie

Hai due possibili alternative:
1) Utilzzare il metodo Find;
Dim miaChiave As Decimal
miaChiave = pNome
Dim miaTabella As DataTable = Dataset.Tables("nomeTabella")
Dim myDrCur As DataRow
myDrCur = miaTabella.Rows.Find(miaChiave)
(poi esamini il valore dell'item del datarow)
2) Ultilizzare il metodo select;
Dim strExpr As String = "nome = 'pippo'"
Dim foundRows As DataRow() = Dataset.Tables("nomeTabella").Select(strExpr) //puoi utilizzare il datatable in alternativa
Dim myDR As DataRow
For Each myDR In foundRows
(cicli tutte le righe che soddisfano il criterio espresso)
Next
3) Utilizzare un filtro con un DataView;

strFilter = "nome = 'pippo'"
strSort = "nome ASC"
Dim dv As DataView
dv = New DataView
With dv
.Table = mioDataset.Tables("nomeTabella") //puoi utilizzare il datatable
.AllowDelete = False
.AllowEdit = False
.AllowNew = False
.RowFilter = strFilter
.RowStateFilter = DataViewRowState.CurrentRows
.Sort = strSort
End With

brazero Profilo | Junior Member

Ok.. ho provato con il 3, con un dataview che viene passato come datasource ad un datagridview (è l'approccio ottimale?).. però come si fa a passare più di un parametro per il filtro??
tipo:
>strFilter = "nome = 'pippo' citta='milano'"

Grazie

mmsoftware Profilo | Newbie

Aggiungi una AND
strFilter = "nome = 'pippo' AND città = 'milano'"

Dovrebbe funzionare

ciao

brazero Profilo | Junior Member

Funziona!!

Grazie mille

Ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5