1
如何在使用Sqlite.net的Windows 8商店应用程序中更新现有表的模式?我尝试CreateTableAsync
然而,创建一个新的表,失去了现有的数据。它应该在插入时更新模式;然而,当我尝试插入不在表中的列的数据时,它会崩溃,指示该列不存在。如何在Windows 8上更新sqlite.net中的表模式
如何在使用Sqlite.net的Windows 8商店应用程序中更新现有表的模式?我尝试CreateTableAsync
然而,创建一个新的表,失去了现有的数据。它应该在插入时更新模式;然而,当我尝试插入不在表中的列的数据时,它会崩溃,指示该列不存在。如何在Windows 8上更新sqlite.net中的表模式
您需要使用.Update
而不是创建一个新表。 .Update
将通过您提供的Model创建一个新数据库,并将现有数据复制/粘贴到新数据库。
我的检查和更新我的数据库
if(result.FirstOrDefault().version != 3 || result.FirstOrDefault().version == 0)
{
//Update Database with new columns by the updated model called Unlockables
conn.CreateTable<Unlockables>();
try
{
var existingRow = (conn.Table<Unlockables>().Where(c => c.Id == 1)).SingleOrDefault();
existingRow.version = 3;
existingRow.SelectedTheme = 0;
existingRow.Theme1 = true;
int succes = conn.Update(existingRow);
}
catch(Exception ex)
{
Debug.WriteLine(ex);
}
}
希望这将有助于:)
您是否尝试过使用SQLite数据库浏览器代码 ?它为所有简单的数据库操作提供了一个易于使用的GUI。 –
你可以显示你使用的代码吗?我尝试了CreateTable以及CreateTableAsync,并且如果我将一个属性添加到我的表类并调用CreateTable,它会将其添加到表中,并为现有记录添加空值,如果此后我开始插入记录,则添加值。 – ChristiaanV