Sulla base dell'esperienza personale, cerco di evitare Datatable.Select. Trovo che sia lento e ha alcuni bug strani.
Uno dei bug (confermato e documentato da Microsoft) in cui mi sono imbattuto era che DataTable.Select non sempre valuta AND correttamente quando ci sono parentesi nell'istruzione.
Ad esempio, (Col1> 1) E (Col < 10) non riesce a restituire le risposte corrette, mentre Col1> 1 E Col < 10 funzionerà correttamente.
Questo bug non viene visualizzato su tutti i computer. Nel mio caso il controllo che stavo usando andava bene sulla mia piattaforma di sviluppo e su ogni computer client tranne uno. Dopo aver scoperto questo errore, ho iniziato a utilizzare LINQ per selezionare e ho notato un aumento significativo della velocità delle operazioni.
Nota a margine: senza approfondire le spiegazioni, la mia azienda non utilizza un database per archiviare i dati. Tutte le delle nostre operazioni con DataTables riguardano tabelle di memoria caricate da file flat.Quindi non sto parlando di LINQ 2 SQL, ma LINQ to Dataset.
fonte
2009-09-14 15:10:56
Grazie per la risposta. Avrei dovuto chiarire che non ho interazione con il database. Aggiornerò la domanda –
Ah abbastanza giusto. Ho aggiornato la mia risposta su questa base. –