2017-05-24 27 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日: 私は今、このような少ない列でそれを試してみました:助けにはならなかった

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

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

イムはまだでそれを作成します。単純なプロパティは1つしかありませんが、Visual Studioではこれまでどおり、そのプロパティを列として2回追加しようとします。

答えて

0

多くのテストとデバッグの後、問題が見つかりました。

含まれているSQLiteのNugetパッケージが問題でした。テーブルを一度しか作成することはできません。あなたが何をしても、1つのテーブルを作成した場合、別のテーブルを作成することはできません。データベースを削除しても。

Nuget Packageをほぼ同じ機能で別のものに変更した後で解決しました。

関連する問題