如何添加现有数据库文件说(例如: - x.sdf)并将数据库文件中存在的数据转储到手机的本地数据库中?
我希望在最终用户自己安装应用时执行此操作。
答案 0 :(得分:1)
检查"应用程序部署" this条的一部分;在那里,您将了解如何使用您的应用程序部署只读数据库,以及为了使其在部署后可写入,您需要做些什么!
答案 1 :(得分:0)
如果需要预先加载的数据库,则可以在应用程序中添加sqlCe DB,并使用种子数据填充数据库。 然后,您可以在调用DBContext的构造函数时将DB文件复制到ISO Store。
public Moviadb1DataContext (string connectionString) : base(connectionString)
{
IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();
if (!iso.FileExists("Moviadb1.sdf"))
{
MoveReferenceDatabase();
}
if (!DatabaseExists())
CreateDatabase();
}
public static void MoveReferenceDatabase()
{
// Obtain the virtual store for the application.
IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();
// Create a stream for the file in the installation folder.
using (Stream input = Application.GetResourceStream(new Uri("Moviadb1.sdf", UriKind.Relative)).Stream)
{
// Create a stream for the new file in isolated storage.
using (IsolatedStorageFileStream output = iso.CreateFile("Moviadb1.sdf"))
{
// Initialize the buffer.
byte[] readBuffer = new byte[4096];
int bytesRead = -1;
// Copy the file from the installation folder to isolated storage.
while ((bytesRead = input.Read(readBuffer, 0, readBuffer.Length)) > 0)
{
output.Write(readBuffer, 0, bytesRead);
}
}
}
}