Hallo zusammen,
seit kurzem arbeite ich mit Xamarin in Visual Studio an meiner ersten mobilen App.
Ich habe nun folgendes Problem. In meiner Main Activity habe ich eine SQLiteConnection erstellt.
// SQLConnection in MainActivity
string sPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "SavedItems.sqlite");
SQLiteConnection con = new SQLiteConnection(new SQLitePlatformAndroid(), sPath);
SavedItemRepository repository = new SavedItemRepository(con);
Mittels Button wechsel ich in eine neue Activity in der ich die entsprechenden Daten darstelle.
// Wechsel in neue Activity
Intent oIntend = new Intent(this, typeof(SavedItemsViewActivity));
oIntend.PutExtra("lstSavedIems", JsonConvert.SerializeObject(lstSavedIems));
StartActivity(oIntend);
In dieser neuen Activity kann ich Einträge aus der Liste entfernen, jedoch habe ich keine Ahnung wie ich diese auch aus der Datenbank lösche.
Das repository Objekt serialisiert zu übergeben an oIntend funktioniert nicht. Wie komme ich nun in der neuen Activity an die SQLLiteConnection, bzw. wie teile ich der MainActivity mit das die entsprechenden Einträge gelöscht werden sollen.
Danke im Voraus.
Hallo,
ersteinmal solltest du dein Programm nach der [Artikel] Drei-Schichten-Architektur aufbauen. Die SQLiteConnection gehört in den DAL (und nicht in die UI). Desweiteren sollten DB-Connections nur so kurz wie möglich geöffnet sein, d.h. du schreibst dir im DAL eine Methode welche die Verbindung öffnet, den Datenzugriff macht und danach wieder schließt (am elegantesten mittels einer using-Anweisung).
Und gerade wenn du (irgendwann) Crossplattform entwickeln willst, dann wirst du das zu schätzen wissen (wobei du dann als UI auch gleich Xamarin.Forms verwenden könntest).
Vielen Dank für die Antwort.
Gibt es irgendwo ein gutes Tutorial in dem das Ganze in einem Beispiel angewandt wird?
2+2=5( (für extrem große Werte von 2)