Popolazione Tabella Libri

domenica 28 novembre 2010 - 11.22

attilio Profilo | Junior Member

Salve a tutti
Sto lavorando su una applicazione che deve gestire la libreria interna.
La gestione è semplice ma sto valutando vari metodi di selezione e categorizzazione, per facilitare la velocità.
Mi spiego meglio ho da gestire un numero limitato di libri su dei pc veramente lenti e la separazione dei libri è la categoria.ad esempio orror drammatici ecc...ogni categoria contiene un numero n(limitato) di libri e per ogni libro devo poter tirare fuori i soliti dati (nome , prezzo , autore ,collana ecc..)
Voglio evitare ad ogni selezione categoria di restituire da SELECT su DB il risultato e quindi vorrei caricare tutti i dati utili in MEMORI / XML / File all'apertura dell'applicazione.
Questo per velocizzare lo spostamento da una CATEGORIA all'altra.
Cosa mi consigliate? un Array? un XML? un normale file asci?Array Bidimensionale?

Grazie

darkeric Profilo | Senior Member

Io per una cosa simile ho utilizzato una datagridview caricandogli tutto
e poi in base alla tipologia di filtro
nascondo o visualizzo le righe

non so se è più rapido o più lento rispetto a fare una nuova interrogazione però!

attilio Profilo | Junior Member

Ciao
Io veramente devo associare i valori a dei Pulsanti in modo dinamico.
C'è quindi una creazione variabile di Button in base al numero di elementi in tabella e a loro vengono associati i valori.
Forse mi conviene utilizzare una listView?voi cosa mi consigliate?

darkeric Profilo | Senior Member

secondo me creare button dinamicamente è inutile

puoi usare una listbox associata

attilio Profilo | Junior Member

In giornata sicuramente proverò in questo modo...
Sperando che il risultato sia lo stesso a livello di efficenza grafica :-)

freeteo Profilo | Guru

Ciao Attilio,
che framework hai usato per sviluppare l'applicazione?
Perchè secondo me potresti fare tutto con Linq, quindi fare una collection in memoria di tutti i libri e poi ad esempio in una listbox piuttosto che una combo, agganciare solo le diverse categorie, filtrandole appunto con Linq, una sintassi di questo tipo:

IEnumerable<Libro> lista = GetLibri(); listbox.DataSource = lista.Select(l => l.Categoria).Distinct();

mentre poi in griglia quando ad esempio ti selezionano la categoria nella listbox, puoi andare a mettere solo quelli di quella categoria, sempre con Linq:
string cat = listBox.SelectedItem as string; griglia.DataSource = lista.Where(l => l.Categoria == cat);

dove "GetLibri()" è un metodo che ti carica i libri dentro ad una List<Libro> e appunto Libro è una classe che rappresenta i tuoi libri.
Per intenderci:
class Libro { public string Categoria { get; set; } public int Id { get; set; } ...altre prop... } private IEnumerable<Libro> GetLibri() { List<Libro> lista = new List<Libro>(); ...connessione al db, lettura da xml quello che ti va meglio etc... while(....) { Libro l = new Libro(); l.Categoria = ...; l.Id = ...; ...altre prop... lista.Add(l); } return lista; }



Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
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