Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以xamarin窗体或xamarin android还原sqlite数据库_C#_Sqlite_Xamarin.forms_Xamarin.android - Fatal编程技术网

C# 以xamarin窗体或xamarin android还原sqlite数据库

C# 以xamarin窗体或xamarin android还原sqlite数据库,c#,sqlite,xamarin.forms,xamarin.android,C#,Sqlite,Xamarin.forms,Xamarin.android,我在xamarin中实现了备份数据库,它将我的数据库复制到sdcard。下面的代码显示了备份文件的路径: "/sdcard/MyTaskDatabase" 我想实施恢复备份。为此,我想将备份文件复制到下面的路径(本地数据库路径): 我知道我必须使用此功能: System.IO.File.Copy(sourcePath, destinationPath, true); 但我无法获取sourcePath和destinationPath。 请帮忙 我有一个功能来恢复数据库,但它不工作,没有错误 p

我在xamarin中实现了备份数据库,它将我的数据库复制到sdcard。下面的代码显示了备份文件的路径:

"/sdcard/MyTaskDatabase"
我想实施恢复备份。为此,我想将备份文件复制到下面的路径(本地数据库路径):

我知道我必须使用此功能:

System.IO.File.Copy(sourcePath, destinationPath, true);
但我无法获取sourcePath和destinationPath。 请帮忙

我有一个功能来恢复数据库,但它不工作,没有错误

public void CopyAndRestore(string sourcePath)
    {
        var dbFileName = "TodoSQLite.db3";

        TodoItemDatabase yourSQliteRepository = new TodoItemDatabase(GetLocalFilePath(dbFileName));

        string destinationPath = GetLocalFilePath(dbFileName);

        yourSQliteRepository.DeleteAllDatabase();
        yourSQliteRepository.CloseDb();

        System.IO.File.Copy(sourcePath, destinationPath, true);
    }

你的意思是说你真的不知道这两个参数应该使用什么路径?或者你已经试过了,但出现了错误,或者根本不起作用?@Jason我试过了,但不起作用,你能修复吗?它不起作用,也不产生任何错误?你如何测试它是否有效?在覆盖现有db文件之前,您确定要关闭所有打开的SQL连接吗?@Jason我更新了我的问题并将还原功能附加到它上,请看,您能告诉我错误吗?您的意思是您不知道这两个参数使用什么路径吗?或者你已经试过了,但出现了错误,或者根本不起作用?@Jason我试过了,但不起作用,你能修复吗?它不起作用,也不产生任何错误?你如何测试它是否有效?在覆盖现有数据库文件之前,您确定要关闭所有打开的SQL连接吗?@Jason我更新了我的问题,并将我的还原功能附加到其中,请查看,您能告诉我错误吗?
public void CopyAndRestore(string sourcePath)
    {
        var dbFileName = "TodoSQLite.db3";

        TodoItemDatabase yourSQliteRepository = new TodoItemDatabase(GetLocalFilePath(dbFileName));

        string destinationPath = GetLocalFilePath(dbFileName);

        yourSQliteRepository.DeleteAllDatabase();
        yourSQliteRepository.CloseDb();

        System.IO.File.Copy(sourcePath, destinationPath, true);
    }