2013-07-11 88 views
0

已存在的數據庫被替換爲在Windows 8的SQLite中調用方法CreateTable <>,擦除所有行並創建一個新表。我該如何解決?下面的代碼來分析:SQLite CreateTable <>已存在的數據庫被替換

using(var db = new SQLite.SQLiteConnection(App.DBPath)) 
     { 

      db.CreateTable<ListasEntid>(); 

      if (db.ExecuteScalar<int>("select count(1) from ListasEntid")==0) 
      { 
       db.RunInTransaction(() => 
       { 
        db.Insert(new ListasEntid() { Nome = "Lista", Eletros = "Teste" }); 
       }); 

      } 
     } 
+0

這看起來像Qt接口SQLite的頭髮。爲此,有一種方法可以測試一個表是否存在,但我不記得它是什麼。無論如何,肯定有一種測試方法,以便您可以跳過創建。 (或者根據bdares的建議,使用「CREATE TABLE IF NOT EXISTS」。) –

回答

0

謝謝你的關注,但問題是沒有具體CreateTable方法,但在應用程序屬性應用程序的配置,調試選項卡,在選項啓動盒標上了「反安裝,然後重新安裝我的packege」 ,擦除所有文件始終初始化調試。

2

不知道你使用的是什麼語言,但如果你能執行原始的SQL那麼你可以使用下面的語法:

CREATE TABLE IF NOT EXISTS ListasEntid (nome text, eletros text); 

這確保了表ListasEntid存在無的摧毀您以前的任何數據。

+0

我正在使用SQLite/C#/ Windows 8應用程序總結此方法CreateTable 陳述:「在數據庫上執行」如果不存在則創建表「 。它還在表的列上創建了任何指定的索引,它使用從指定類型自動生成的模式,稍後可以通過調用GetMapping來訪問該模式。我不明白,因爲它重新創建表,它已經存在。 –