2015-08-01 3 views
1

Je convertis mon application wp8 (utilise une base de données SQL Server CE) à une application wp8.1RT (en utilisant la base de données SQLite). Je reçois une erreur "base de données est verrouillé" dans le code ci-dessous.base de données est verrouillé dans Windows Phone 8.1 RT qui utilise SQLite comme base de données

Parfois, je reçois l'erreur lors de la récupération des informations de la table des clients, parfois lors de la suppression. J'utilise différents travailleurs d'arrière-plan, peut-être parce que cette base de données est verrouillée.

Quelqu'un peut-il me dire comment résoudre ce problème de verrouillage de base de données?

Dois-je ajouter du code ou des paramètres supplémentaires?

public ObservableCollection<CustomerTable> RetreiveCheckedCustomer(long customerId) 
    { 
     var list = new ObservableCollection<CustomerTable>(); 
     using (SQLiteConnection databasemodel = new SQLiteConnection(App.DB_PATH)) 
     { 
      list = new ObservableCollection<CustomerTable>(from item in databasemodel.Table<CustomerTable>() where item.CHECKED == true select item); 
      var list2 = new ObservableCollection<LocationTable>(databasemodel.Table<LocationTable>()); 
      foreach (var item in list2) 
      { 
       databasemodel.Delete(item); 
      } 
     } 
     return list; 
    } 
+0

tout organisme ont une idée de comment résoudre le problème donné? –

Répondre

0

On ne peut simplement pas convertir la base de données SQL Server CE de wp8 en base de données SQLite pour 8.1. Face à la même question quelques mois en arrière, référez-moi mon poste here

+0

Salut Milan Aggarwal, Merci pour votre réponse. Certains comment j'ai réussi à convertir la base de données SQL Server CE en base de données SQLite. –

+0

Pouvez-vous partager votre approche? –

+0

Je suis capable de résoudre le problème "base de données verrouillée" avec le code ci-dessous. SQLite3.Config (SQLiteConfigOption.MultiThread); Je suis capable de résoudre le problème "base de données occupé" En partageant le SQLiteConnection entre plusieurs threads d'arrière-plan et fil d'interface utilisateur. –

0

J'ai utilisé la ligne suivante pour résoudre le problème de verrouillage de la base de données.

SQLite3.Config (SQLiteConfigOption.MultiThread);

Après cela, j'ai utilisé seule connexion SQLite à travers l'application pour résoudre le problème occupé de base de données,