Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Xamarin.iOS uygulamanızda SQLite kullanmak için veritabanı dosyanız için doğru dosya konumunu belirlemeniz gerekir.
Veritabanı Dosya Yolu
Hangi veri erişim yöntemini kullandığınızdan bağımsız olarak, verilerin SQLite ile depolanabilmesi için önce bir veritabanı dosyası oluşturmanız gerekir. Dosya konumunu hedeflediğiniz platforma bağlı olarak farklı olacaktır. iOS için, aşağıdaki kod parçacığında gösterildiği gibi geçerli bir yol oluşturmak için Ortam sınıfını kullanabilirsiniz:
string dbPath = Path.Combine (
Environment.GetFolderPath (Environment.SpecialFolder.Personal),
"database.db3");
// dbPath contains a valid file path for the database file to be stored
Veritabanı dosyasının nerede depolandığına karar verirken dikkate alınması gereken başka noktalar da vardır. iOS'ta veritabanının otomatik olarak yedeklenmesini (veya yedeklenmemesini) isteyebilirsiniz.
Platformlar arası uygulamanızdaki her platformda farklı bir konum kullanmak istiyorsanız, her platform için farklı bir yol oluşturmak üzere gösterildiği gibi bir derleyici yönergesi kullanabilirsiniz:
var sqliteFilename = "MyDatabase.db3";
#if __ANDROID__
// Just use whatever directory SpecialFolder.Personal returns
string libraryPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal); ;
#else
// we need to put in /Library/ on iOS5.1+ to meet Apple's iCloud terms
// (they don't want non-user-generated data in Documents)
string documentsPath = Environment.GetFolderPath (Environment.SpecialFolder.Personal); // Documents folder
string libraryPath = Path.Combine (documentsPath, "..", "Library"); // Library folder instead
#endif
var path = Path.Combine (libraryPath, sqliteFilename);
iOS'ta hangi dosya konumlarının kullanılacağı hakkında daha fazla bilgi için Dosya Sistemi ile çalışma makalesine bakın. Her platforma özgü kod yazmak için derleyici yönergelerini kullanma hakkında daha fazla bilgi için Platformlar Arası Uygulamalar Oluşturma belgesine bakın.
İş Parçacığı Oluşturma
Birden çok iş parçacığında aynı SQLite veritabanı bağlantısını kullanmamalısınız. Aynı iş parçacığında oluşturduğunuz bağlantıları açmaya, kullanmaya ve kapatmaya dikkat edin.
Kodunuzun aynı anda birden çok iş parçacığından SQLite veritabanına erişmeye çalışmadığından emin olmak için, veritabanına her erişişinizde el ile kilitleyin, örneğin:
object locker = new object(); // class level private field
// rest of class code
lock (locker){
// Do your query or insert here
}
Tüm veritabanı erişimi (okuma, yazma, güncelleştirme vb.) aynı kilit ile sarmalanmalıdır. Kilit yan tümcesi içindeki çalışmanın basit tutulduğundan ve kilit alabilen diğer yöntemlere çağrı yapılmadığından emin olarak kilitlenme durumundan kaçınmak için dikkatli olunmalıdır!