创建数据库时列已存在

时间:2018-02-01 15:15:19

标签: sqlite xamarin xamarin.forms

我尝试使用Xamarin和SQLite保存表单。

我试图像这样创建本地数据库:

    SQLiteConnection db;

    public MoodDatabaseController()
    {
        db = DependencyService.Get<ISQLite>().GetConnection();
        db.CreateTable<MoodEntry>();
    }

MoodEntry

public class MoodEntry
{
    [PrimaryKey, AutoIncrement]
    public int MoodEntryID { get; set; }

    [Indexed]
    public DateTime EntryDate { get; set; }
    ...

的getConnection():

    public SQLite_Android() { }
    public SQLite.SQLiteConnection GetConnection()
    {
        var sqliteFileName = "myMood.db3";
        string documentsPath = System.Environment.GetFolderPath(System.Environment
                                    .SpecialFolder.Personal);
        var path = Path.Combine(documentsPath, sqliteFileName);
        var conn = new SQLite.SQLiteConnection(path);

        return conn;
    }

错误: &#34; SQLite.SQLiteException:重复的列名:MoodEntryID&#34;

如果我只定义一次它怎么能存在呢?

编辑:

https://github.com/lasseedsvik/myMood

编辑2:

我还添加了一个空的ctor以避免该错误

1 个答案:

答案 0 :(得分:1)

由于我注意到我无法更新Xamarin软件包并获得奇怪的输出,因此我从头开始重新编写整个解决方案并更新了Xamarin软件包并为我解决了这个问题。