【发布时间】:2017-03-16 16:55:16
【问题描述】:
我有一个项目,我一直在用 C# 处理我想要发布的本地数据库。
问题是每次我发布一个新版本的软件时,数据库都会被覆盖,我丢失了所有数据。
如何设置项目,以免本地数据库被覆盖?
【问题讨论】:
标签: c# visual-studio local-database oneclick
我有一个项目,我一直在用 C# 处理我想要发布的本地数据库。
问题是每次我发布一个新版本的软件时,数据库都会被覆盖,我丢失了所有数据。
如何设置项目,以免本地数据库被覆盖?
【问题讨论】:
标签: c# visual-studio local-database oneclick
据我了解,您的本地数据库是包含在您的部署包中的文件。基于此:
正确的方法
从一个版本到另一个版本,您可能需要更改数据库结构或使用新功能对其进行扩展。所以,我建议从部署包中排除本地数据库文件。 不要复制数据库文件,而是使用脚本来创建数据库:
结果你应该有这样的东西(示例):
public static void Main(object[] args)
{
CreateDatabaseIfNotExists();
RunDatabaseUpdateQueries();
InsertInitialDataIfDatabaseNew();
// Rest of your code...
}
优点:您将获得灵活的解决方案,可以在您交付新版本时更改您的数据库。 缺点:您必须编写更新脚本并在应用程序启动时运行它们。
解决方法
作为建议流程的替代方案,您可以简单地执行下一步:
结果你应该有这样的东西(示例):
public static void Main(object[] args)
{
CreateDatabaseIfNotExists();
// Rest of your code...
}
优点:您需要最少的努力来实现这样的流程。
缺点:解决方案不灵活,如果在未来版本中更新数据库结构,您将面临问题。
【讨论】: