2013-08-16 18 views
5

Ho un DataTable sto cercando di fare una semplice riga di selezione che contiene un valore.LINQ Seleziona DataRow da DataTable

Il mio codice

var LoginDetails = from myRow in DTOperators.AsEnumerable() 
          where myRow.Field<string>(0) == UserName 
          select myRow; 

Sto cercando di verificare se il nome utente stringa esiste alla posizione 0 le righe nel DataTable

quando faccio funzionare questa domanda ho un vuoto datarow indietro.

Ho provato a utilizzare [] attorno alla posizione che desidero selezionare.

chiunque sia in grado di vedere cosa sto facendo male.

+0

sembra buono, che cosa è l'eccezione o un problema? – Matten

+0

L'indice del campo è corretto? Capisco che vuoi controllare la posizione 0 ma contiene i nomi? Ho provato con un semplice datatable e ho controllato la posizione 1 e mi ha restituito 2 record. – Nilesh

+0

Stai controllando '==' Anche gli spazi potrebbero causare problemi qui! –

risposta

16

è necessario verificare se si effettua il confronto con la colonna di destra e controllare i dati nella tabella. questo funziona benissimo:

var DTOperators = new DataTable(); 
var UserName = "test"; 
DTOperators.Columns.Add("UserName", typeof(string)); 
DTOperators.Rows.Add("test1"); 
DTOperators.Rows.Add("test"); 
var LoginDetails = from myRow in DTOperators.AsEnumerable() 
        where myRow.Field<string>(0) == UserName 
        select myRow; 

Ho Enumerable con un datarow. Si potrebbe anche cercare di ottenere i dati da columnName:

var LoginDetails = DTOperators.Rows 
           .Cast<DataRow>() 
           .Where(x => x["UserName"] == UserName).ToList(); 
Problemi correlati