使用C#在Xamarin Forms中复制SQLite数据库

Copying SQLite database in Xamarin Forms using C#

我实际上在开发一个小应用程序,并在我的Android设备上模仿它(Android 7.1-从沿袭系统中清晰地闪现了Android)。我的问题是我需要查看我的sqlite表,但是我找不到文件,所以我想出了一个主意。如果我看不到它,因为Android,让我们把文件复制到计算机上。

但老实说,我不知道怎么做。我找到了这个,但我的Xamarin告诉我他不懂那个剧本。

1
2
3
4
5
6
7
8
9
10
public static void BackupDatabase(string sourceFile, string destFile)
{
    using (SQLiteConnection source = new SQLiteConnection(String.Format("Data Source = {0}", sourceFile)))
    using (SQLiteConnection destination = new SQLiteConnection(String.Format("Data Source = {0}", destFile)))
    {
        source.Open();
        destination.Open();
        source.BackupDatabase(destination,"main","main", -1, null, -1);
    }
}

他不懂江户记1〔0〕……

SQLiteConnection doesn't containts definitions for Open and there is no extending method Open..... (don't you missing some directives?)


调试xamarin表单时,android应用程序在命令提示下运行以下命令以浏览数据库内容。

1
2
C:\Program Files (x86)\Android\android-sdk\platform-tools>adb shell
TC25FM:/ $ run-as com.packagename

下面的命令将数据库内容复制到电话SD卡

1
2
3
TC25FM:/data/data/com.packagename $ cp files/Storage.db /sdcard/data/
TC25FM:/data/data/com.packagename $ exit
TC25FM:/ $ exit

下面的命令将文件从SD卡拉到DEV计算机

1
2
C:\Program Files (x86)\Android\android-sdk\platform-tools>adb pull
sdcard/data/Storage.db

下面的命令帮助您使用SQL查询浏览数据库

1
2
3
C:\Program Files (x86)\Android\android-sdk\platform-tools>sqlite3 Storage.db

sqlite> select * from tablename


你可以在Mac/iPhoneSimulator上执行此操作

var path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
path = Path.Combine(path,"Database.db");
SQLiteConnection source = new SQLiteConnection(path);

您可以打印出路径并在Mac中打开它