C# 如何在Windows Phone 8中更新现有sqlite数据库而不丢失数据?
我目前正在Windows Phone 8中使用SQLite数据库。我有一个表,其中有一些列和数据在应用程序上,这是活的。现在,在下一次更新中,我希望在该表中添加一个新列,而不会丢失以前插入的数据 有人能建议我如何达到这个要求吗 编辑 这是我的类,我想在其中添加一个新列C# 如何在Windows Phone 8中更新现有sqlite数据库而不丢失数据?,c#,sqlite,windows-phone-8,C#,Sqlite,Windows Phone 8,我目前正在Windows Phone 8中使用SQLite数据库。我有一个表,其中有一些列和数据在应用程序上,这是活的。现在,在下一次更新中,我希望在该表中添加一个新列,而不会丢失以前插入的数据 有人能建议我如何达到这个要求吗 编辑 这是我的类,我想在其中添加一个新列 public class Info { [PrimaryKey] public int id{get;set;} public string name{get;set;} public string inf
public class Info
{
[PrimaryKey]
public int id{get;set;}
public string name{get;set;}
public string information{get;set;}
public string nick_name{get;set;}
}
列数据类型为string,其值如下所示
public string disp_id{get;set;}
- 用一些临时名称重命名旧表
- 使用所需名称和新列定义创建新表
- 将数据从旧表复制到新表并添加新列数据
- 放下旧桌子
CREATE TABLE "info" (
"id" INTEGER NOT NULL,
"name" TEXT,
"information" TEXT,
"nick_name" TEXT,
PRIMARY KEY ("id" ASC)
);
添加此列将继续:
PRAGMA foreign_keys = OFF;
alter table "info" rename to "info_temp";
CREATE TABLE "info" (
"id" INTEGER NOT NULL,
"name" TEXT,
"information" TEXT,
"nick_name" TEXT,
"disp_id" TEXT,
PRIMARY KEY ("id" ASC)
);
insert into "info" ("id", "name", "information", "nick_name") select "id", "name", "information", "nick_name" from "info_temp";
DROP TABLE "main"."info_temp";
它的作用是:
您可以提供一些示例或链接来完成此操作吗?@KinjanBhavsar编辑您的问题以添加表定义和新列类型。@KinjanBhavsar是您的应用程序,首先使用EF代码吗?不。我正在插入从服务器获取的所有数据。@KinjanBhavsar那么为什么要发布c#代码呢?请添加SQL表定义。请查看我的更新答案。