gpt4 book ai didi

c# - 找不到数据库文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:26:33 24 4
gpt4 key购买 nike

在我的 Windows Phone 8 C#/XAML .NET 4.5 项目中,我正在使用(在 LINQ-2-SQL 的帮助下)由团队的另一名成员创建的本地数据库(可能是 SQLite)。

但是当我运行应用程序时,它抛出一个异常:

The database file cannot be found. Check the path to the database. [ Data Source = C:\Data\Users\DefApps\AppData\{XXXXX-XXXXX-XXXXXX-XXXXX}\Local\database.sdf ]

包含数据库的.sdf 文件位于/Database/database.sdf 中的项目中,属性设置为Build action: Embedded resource &复制到输出目录:总是复制

databaseContext.cs 中,这是一个用作上下文的类(不确定我的命名是否正确,我是 linq-2-sql 的新手),定义了连接字符串作为:

Data Source=isostore:/database.sdf

这是正确的设置吗?我该怎么做才能让它发挥作用?

最佳答案

您必须先将数据库移动到隔离存储。这是您可以做到的。

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("DutchMe.sdf", UriKind.Relative)).Stream)
{
// Create a stream for the new file in the local folder.
using (IsolatedStorageFileStream output = iso.CreateFile("DutchMe.sdf"))
{
// Initialize the buffer.
byte[] readBuffer = new byte[4096];
int bytesRead = -1;

// Copy the file from the installation folder to the local folder.
while ((bytesRead = input.Read(readBuffer, 0, readBuffer.Length)) > 0)
{
output.Write(readBuffer, 0, bytesRead);
}
}
}
}

否则将连接字符串设置为 Data Source=appdata:/database.sdf 。我不太确定第二种解决方案。

关于c# - 找不到数据库文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22224946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com