2012-05-28 2 views
0

J'ai deux questions.SQLiteMetro Windows8 db ne pas stocker les données

  1. Comment puis-je obtenir le SQLite Db pour stocker des données? La base de données est créée et je peux trouver la base de données à son emplacement FilePath, mais je ne vois jamais de données.

  2. Comment puis-je changer l'emplacement pour enregistrer les données dans un dossier local, pas dans les utilisateurs ... AppData dossier?

Voici mon code:

 Database db = new Database(Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path,"alpha2.db")); 
    // Database db = new Database("c:\\Projects\\alpha2.db"); 

     Statement stm; 
     stm = db.PrepareStatement("CREATE TABLE IF NOT EXISTS person(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, data BLOB)"); 
     stm.Execute(); 
     stm.Dispose(); 

     stm=db.PrepareStatement("INSERT INTO person(name,age VALUES(?,?)"); 
     stm.BindParamText(1,"John Doe"); 
     stm.BindParamInt(2,35); 

     stm.Execute(); 
     stm.Dispose(); 

     long insertRowId = db.LastInsertRowId; 

     stm=db.PrepareStatement("SELECT * FROM person"); 
      while(stm.GetNextRow()) 
      { 
       int id=stm.GetIntAt(0); 
       string name=stm.GetTextAt(1); 
       textBlock1.Text=name.ToString(); 

      } 

     stm.Dispose(); 
     db.Dispose(); 

TIA, cela a été une tête de deux jours Banger.

Répondre

0

La syntaxe de votre requête d'insertion semble erroné. Il devrait être plus comme ...

INSERT INTO person(name,age) VALUES(?,?) 

(Ajout d'un proche paren après l'âge.)

Vous ne pouvez pas écrire dans un emplacement arbitraire sur le lecteur de l'utilisateur à partir d'une application Metro Style. LocalFolder est votre meilleur pari.

Modifier pour commentaire: Consultez Tim's article sur SQLite pour la syntaxe pour le dossier local.

+0

Merci JP, qui a fixé elle. :) Quelle serait la syntaxe pour utiliser le LocalFolder? –

Questions connexes