2012-10-16 26 views
6

Şifrelenmiş bir veritabanına veritabanı erişimi için System.Data.Sqlite (1.0.82) ile bir .NET 4 uygulamasına (karma modda) sahibim.System.Data.SQLite yönetici olmayan kullanıcılar için yavaş bağlantı

Uygulamayı "c: \ program files \ myfolder" e yüklediğimde, sqlite veritabanı dosyasına bağlanmak yavaştır. Günlük dosyaları, birkaç saniye gecikmiş olan sqlite bağlantı ifadesinin olduğunu gösterir.

ben aşağıdakileri yapın sorun oluşmaz:

  • Run
  • c yerden başka bir yerde kurun yönetici ayrıcalıklarına sahip uygulama: \ Program Files c uygulamayı yükleyin
  • \: \ program files \, ancak veritabanını başka bir klasöre taşıyın. Bunun nedeni ne olabilir hiçbir ipucu var

...

cevap

5

DB dosya uygulama dizininde olduğunu o zaman UAC taşıyarak olduğunu büyük ihtimalle ise" ... Appdata \ Local \ VirtualStore \ Program Dosyaları "dizini. En iyi uygulama kendi appdata \ MyApp klasörünüzü oluşturmak ve bozulmamış DB'yi c: \ program files \ MyApp klasöründen kopyalamaktır.

+0

çalışıyor, teşekkürler – matihuf

1

Veritabanını salt okunur modda açmaya yardımcı olur. (Program dosyaları klasöründe yalnızca salt okunur şeyleri saklamanız gerekir.)

Bağlantı dizesine yalnızca ";Read Only=True" ekleyiniz.

private const string CONN_TEMPL = "Data Source={0};Version=3;Read Only=True"; 
var conn = new SQLiteConnection(
    String.Format(CultureInfo.InvariantCulture, CONN_TEMPL, databasePath) 
); 
İlgili konular