我正在使用SQLite for Windows Phone 7(http://sqlitewindowsphone.codeplex.com/),我已完成本教程的所有步骤(http://dotnetslackers.com/articles/silverlight/Windows-Phone-7 -native-数据库编程-通SQLite的客户端换Windows的Phone.aspx)
然后我尝试使用select和delete等基本功能制作一些简单的应用程序。应用程序正常工作,直到我想进行此操作之一。单击选择或删除后,编译器显示他无法打开数据库文件的错误...
我不知道为什么?
答案 0 :(得分:1)
我使用了相同的Sqlite客户端,并遇到了同样的问题。出现此问题的原因是sqlite尝试在IsolatedFileStorage“DatabaseName.sqlite-journal”中创建文件,并且它没有足够的权限。我解决了这个问题,因此在将数据库复制到IsolatedFileStorage之前创建了“DatabaseName.sqlite-journal”。这是我的方法:
private void CopyFromContentToStorage(String assemblyName, String dbName)
{
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
string uri = dbName + "-journal";
store.CreateFile(uri);
using (Stream input = Application.GetResourceStream(new Uri("/" + assemblyName + ";component/" + dbName,UriKind.Relative)).Stream)
{
IsolatedStorageFileStream dest = new IsolatedStorageFileStream(dbName, FileMode.OpenOrCreate, FileAccess.Write, store);
input.Position = 0;
CopyStream(input, dest);
dest.Flush();
dest.Close();
dest.Dispose();
}
}
它帮助了我,并且运作良好。
希望这会对你有所帮助
答案 1 :(得分:0)
您确定文件存在吗? 你可以这样检查:
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
exists = store.FileExists(DbfileName);
}