Questione : SqlCeResultSets in Windows Mobile

Ho un problema con una parte che mobile sto lavorando a quello coinvolgo parecchi datagrids.  La selezione fatta nel primo datagrid determina le opzioni che compaiono in secondo ed e così via fino a che l'utente non possa ottenere all'annotazione di particolare specifica sono dopo.  Ad un punto qualunque, l'utente può sostenere al datagrid originale (o a c'è ne già hanno fatto una selezione per) e cambiare la loro scelta, che elimina le selezioni “del bambino„ che allora re-sono scelte.  In questo caso, tutti i datagrids sono passivi - affatto pubblicare avviene sul problema differente di forms.

My è che il programma getta la terza volta “un errore di non abbastanza immagazzinaggio„ un genitore che la selezione è cambiata, che si presenta durante la domanda per ottenere le nuove opzioni per il bambino.  Ho provato a distruggere gli oggetti di SqlCeCommand immediatamente, che scompiglia in su potere tirare i IDs selezionati.  L'azione alternativa che seguente ho provato stava controllandoli appena prima rebinding.  Gli adattatori e le tabelle di dati non sono un'opzione a causa delle spese generali che generano.  Era la mia comprensione (ed esperienza finora) che SqlCeResultSet funziona molto più velocemente con spese generali minime, ma sono disposto a provare altre opzioni.  il codice di esempio del

The sotto è stato alterato per proteggere la proprietà intellettuale ed è fornito come esempio.  Codificare i particolari non forniti includono: il collegamento persistente del >
  • A " della pallottola " del class= del
    • Synchronization " della pallottola " del class= di myStaticGlobals

    • Datagrid " della pallottola " del class= di sync.

    • Selections dell'assistente class.

    1 del >


     *****
    //TODO: unwire tutti gli alimentatori di evento che saranno innescati da un rebind
    ***** di //
    GridHelper.UnregisterDatagridEvents (riferimento datagrid1);
    
    cmdSql di System.Data.SqlServerCe.SqlCeCommand = nuovo System.Data.SqlServerCe.SqlCeCommand ();
    cmdSql.Connection = myStaticGlobals.LocalConnection;
    ceResults = posizione di segnale minimo di System.Data.SqlServerCe.SqlCeResultSet;
    
    visitContext di SelectedContext = myStaticGlobals.SelectedData.FindContext (“chiamata„, false);
    
    se ((posizione di segnale minimo del == di visitContext.SelectedId) || (posizione di segnale minimo del == di visitContext.SelectedTable))
        MessageBox.Show (“nessuna chiamata selected.");
    altrimenti
    {
        cmdSql.CommandText =
            stringa. Disposizione (“column1 prescelti, column2 da table1 interno si uniscono {0} come chiamate dove visits.id = {1}„, visitContext.SelectedTable, (Int64) visitContext.SelectedId);
        ////TODO: aggiungere DataGridStyle?
    
        prova
        {
            se (this.datagrid1.DataSource! = posizione di segnale minimo)
            {
                ((System.Data.SqlServerCe.SqlCeResultSet) this.datagrid1.DataSource). Fine ();
                ((System.Data.SqlServerCe.SqlCeResultSet) this.datagrid1.DataSource). Disporre ();
            }
    
            ceResults = cmdSql.ExecuteResultSet (System.Data.SqlServerCe.ResultSetOptions.Scrollable | System.Data.SqlServerCe.ResultSetOptions.Insensitive); // <-- errore gettato qui
            this.datagrid1.DataSource = ceResults;
            
            this.datagrid1.TableStyles.Clear ();
            hideId di DataGridTableStyle = nuovo DataGridTableStyle ();
            this.datagrid1.TableStyles.Add (hideId);
            hideId.GridColumnStyles [0]. Larghezza = -1;
        }
        fermo (exSql di System.Data.SqlServerCe.SqlCeException)
        {
            se (exSql.Message.IndexOf (“non esistere„) > 0)
                MessageBox.Show (“prego resync tutto il dispositivo data.");
            altrimenti
                MessageBox.Show (exSql.Message);
        }
        fermo (eccezione ex)
        {
            MessageBox.Show (ex. Messaggio);
        }
    }
    ***** di //
    //TODO: Riavvolgere tutti gli alimentatori di evento per effetto del gocciolamento ed infornarli
    ***** di //
    GridHelper.RegisterDatagridEvents (riferimento datagrid1);
    class= >
    di
    class= del

Risposta : SqlCeResultSets in Windows Mobile

Windows OneCare in tensione è stato interrotto su 30.6.2009 ed ed è stato sviluppato sulla tecnologia di RAV. Il successore è elementi essenziali di sicurezza di Windows - un attrezzo del freeware. In breve OneCare è la storia…
Uso abbastanza spesso il antimalware (o presto MBAM) da Malwarebytes - una versione del freeware. Questa versione non ha esplorazione in tempo reale, ma è abbastanza efficace contro tutte le specie di malware.
Altre soluzioni  
 
programming4us programming4us