Frage : SqlCeResultSets in Windows Mobile

Ich habe ein Problem mit einem beweglichen Stück, das ich an dem mit.einbeziehe einige datagrids arbeite.  Die Vorwähler, die im ersten datagrid gebildet wird, fährt die Wahlen, die sofort erscheinen, und so weiter, bis der Benutzer an den spezifischen Postensatz gelangen kann, den sie nachher sind.  An irgendeinem Punkt kann der Benutzer zum ursprünglichen datagrid (oder zu irgendwelchen unterstützen haben sie bereits eine Vorwähler für gebildet) und ihre Wahl ändern, die die „Kind“ Vorwähleren löscht, die dann Re-gewählt werden.  In diesem Fall sind alle datagrids schreibgeschützt - irgendwie redigieren findet auf unterschiedlichem forms.

My Problem ist statt, dass das Programm eine „nicht genügend Speicher“ Störung das dritte mal ein Elternteil wirft, das Vorwähler geändert wird, die während der Frage auftritt, um die neuen Wahlen für das Kind zu erhalten.  Ich habe versucht, die SqlCeCommand Gegenstände sofort zu zerstören, der oben sein, vorgewählte IDs zu ziehen verwirrt.  Die folgende Abhilfe, die ich versuchte, überprüfte sie kurz vor dem Rebinding.  Datenadapter und -tabellen sind nicht eine Wahl wegen der Unkosten, die sie erzeugen.  Es war mein Verständnis (und Erfahrung bis jetzt) dass SqlCeResultSet viel schneller mit minimalen Unkosten arbeitet, aber ich bin bereit, andere Wahlen zu versuchen.  der folgende

The Beispielcode ist geändert worden, um geistiges Eigentum zu schützen und wird als Beispiel zur Verfügung gestellt.  Nicht die bereitgestellten Details kodieren einschließen:
  • A hartnäckiger Anschluss mit der lokalen Datenbank hielt myStaticGlobals

  • Synchronization mit einem VorlagenSQL-Server.  Während Synchronisierung wird der lokale Anschluss zerstört, und er reinstantiated nach den sync.

  • Datagrid Ereignissen wird verdrahtet/unwired durch eine Helfer class.

  • Selections wird aufgespürt in einer kundenspezifischen Kategorie mit Elternteil/Kindrelationen und -methoden, um das resultierende stack.


1 zu handhaben:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
 *****
//TODO: unwire alle mögliche Ereigniszufuhren, die durch ein rebind ausgelöst werden
// *****
GridHelper.UnregisterDatagridEvents (Hinweis datagrid1);

System.Data.SqlServerCe.SqlCeCommand cmdSql = neues System.Data.SqlServerCe.SqlCeCommand ();
cmdSql.Connection = myStaticGlobals.LocalConnection;
System.Data.SqlServerCe.SqlCeResultSet ceResults = Null;

SelectedContext visitContext = myStaticGlobals.SelectedData.FindContext („Besuch“, falsch);

wenn ((visitContext.SelectedId == Null) || (visitContext.SelectedTable == Null))
    MessageBox.Show („kein Besuch selected.");
sonst
{
    cmdSql.CommandText =
        Schnur. Format („auserwählte column1, column2 von innerem table1 verbinden {0} als Besuche in denen visits.id = {1}“, visitContext.SelectedTable, (Int64) visitContext.SelectedId);
    ////TODO: DataGridStyle addieren?

    Versuch
    {
        wenn (this.datagrid1.DataSource! = Null)
        {
            ((System.Data.SqlServerCe.SqlCeResultSet) this.datagrid1.DataSource). Abschluss ();
            ((System.Data.SqlServerCe.SqlCeResultSet) this.datagrid1.DataSource). Abschaffen ();
        }

        ceResults = cmdSql.ExecuteResultSet (System.Data.SqlServerCe.ResultSetOptions.Scrollable | System.Data.SqlServerCe.ResultSetOptions.Insensitive); // <-- Störung hier geworfen
        this.datagrid1.DataSource = ceResults;
        
        this.datagrid1.TableStyles.Clear ();
        DataGridTableStyle hideId = neues DataGridTableStyle ();
        this.datagrid1.TableStyles.Add (hideId);
        hideId.GridColumnStyles [0]. Breite = -1;
    }
    Fang (System.Data.SqlServerCe.SqlCeException exSql)
    {
        wenn (exSql.Message.IndexOf („nicht existieren“) > 0)
            MessageBox.Show („bitte RESYNC alle Vorrichtung data.");
        sonst
            MessageBox.Show (exSql.Message);
    }
    Fang (Ausnahme ex)
    {
        MessageBox.Show (ex. Mitteilung);
    }
}
// *****
//TODO: Alle mögliche Ereigniszufuhren für sickernd Effekt neuverdrahten und sie feuern
// *****
GridHelper.RegisterDatagridEvents (Hinweis datagrid1);

Antwort : SqlCeResultSets in Windows Mobile

Windows PhasenOneCare eingestellt worden auf 30.6.2009 und nd und aufgebaut worden auf RAV Technologie en. Nachfolger ist Windows-Sicherheitswesensmerkmale - ein Freewarewerkzeug. In kurzem OneCare ist es Geschichte…
Ich verwende ziemlich häufig antimalware (oder kurz MBAM) von Malwarebytes - eine Freewareversion. Diese Version hat nicht Realzeitscan, aber sie ist gegen alle Art von malware ziemlich wirkungsvoll.
Weitere Lösungen  
 
programming4us programming4us