Ragazzi, ho fatto un programmino per un ditta ke noleggia bicicletta, su un plamare della Datalogic, con laser incorporato.

Il mio problema è che il programa quando parte occupa già di per se 6mb circa, come effettuo il login e quindi faccio una query al db per verificare l'utente, la memoria sale a 9mb circa, lasciando cosi neanche 1mb libero, e non libera memoria quando chiudo il login e passo all'applicazione.
In questa situazione tipo, la memoria disponibile è troppo poca, o come effettuo 2 query di fila va in errore per "OutMemoryException".

Effettuo "dispose" su ogni oggetto, "BeginUpdate" ed "EndUpdate" sugli oggetti ke lo richiedono, senza dimenticare "ResumeLayout" e "SuspendLayout" e gli forzo anche il "Collect" della Garbage Collection, ma il risultato non cambia, la memoria resta satura e va sempre in errore su una seconda query.
Premetto che su altri Palmari con Window Mobile funge bene, e non arriva a saturare tutta la memoria.

Ecco dati utili:
OS: Windows CE 5.0
Ram: 64 MB
DB: SqlServer CE
Linguaggio: VB.Net

parte di codice dove alloca memoria e non la rilascia piu:

Try
'conn = New Data.SqlServerCe.SqlCeConnection(connStr)
'conn.Open()
Bar.Value += 2
strSql1 = "SELECT * from dipendenti where Utente like '" & user & _
"' and Pwd like '" & pwd & "'"

objAdapter1 = New Data.SqlServerCe.SqlCeDataAdapter(strSql1, connStr1)

Bar.Value += 2

'inizializzo il DATASET
objDataset1 = New Data.DataSet()

Bar.Value += 2

'recupero i dati dalla tabella specificata con il DataAdapter
'e li metto nel DataSet (objDataset)
----> objAdapter1.Fill(objDataset1, "Dipendenti")

'dichiaro una variabile TABLE1 da riempire con
'i record della/e tabella/e caricata/e con il DATASET
tableRS1 = objDataset1.Tables


objAdapter1.Dispose()
objDataset1.Dispose()

objAdapter1 = Nothing
objDataset1 = Nothing

.....................