2017-05-24 72 views
0

我正在爲Android編程應用程序,並決定在SQLite數據庫中存儲一點點。SQLite.SQLiteException:重複的列名稱:ID

我用以下命令來創建數據庫:

var db = new SQLiteConnection(TestPath); 
db.CreateTable<TestClass>; 

那就是類:

class TestClass 
{ 
    [PrimaryKey, AutoIncrement, Column("id")] 
    public int Id { get; set; } 
    [NotNull, Column("messagetext")] 
    public string MessageText { get; set; } 
    [Column("messagetype")] 
    public int MessageType { get; set; } 

    public TestClass(string mText, int mType) 
    { 
     MessageText = mText; 
     MessageType = mType; 
    } 
} 

當我運行的應用程序(無論調試或釋放)以下錯誤occures:

SQLite.SQLiteException: duplicate column name: id 

我已經檢查過它是否被多次調用。 我已經嘗試更改名稱。 我注意到它始終是第一列。所以首先我沒有添加id,因爲我不真的需要它。但是沒有id,下一列會出現同樣的錯誤。 我也試着改變鏈接。 (沒有鏈接沒有幫助)

我總是清理並完全重建項目,並從仿真中刪除舊的應用程序。

我試過的一切都沒有幫助。 任何想法接下來我可以嘗試?

編輯2017年5月25日: 我現在用更少的列嘗試過這樣的:

class TestClass 
{ 
    public int id { get; set; } 
} 

我還在與創建它:

var db = new SQLiteConnection(TestPath); 
db.CreateTable<TestClass>; 

沒有幫助。只有一個簡單的屬性,但是有什麼視覺工作室做,它試圖將該屬性作爲列添加兩次。

回答

0

好吧,經過大量的測試和調試,我發現了這個問題。

包含SQLite的Nuget包是問題所在。它只能創建一次表格。不管你做什麼,如果你創建了一個表,你不能創建另一個或其他東西。即使你刪除了數據庫。

在將Nuget包更改爲另一個具有幾乎相同功能的另一個包後,它得到解決。