【问题标题】:How to browse sqlite data in xamarin?如何在 xamarin 中浏览 sqlite 数据?
【发布时间】:2016-01-31 14:28:28
【问题描述】:

我的应用中有一个列表视图,一些数据在填充列表视图之前保存到数据库中。

我的问题是看不到数据,如何验证数据是否存储在数据库中。

【问题讨论】:

    标签: sqlite xamarin xamarin.forms


    【解决方案1】:

    我正在为 Visual Studio 2015(为 Xamarin 工作)提供解决方案。

    • 找到上图中提到的数据库文件,然后点击图2所示的Pull按钮。
    • 将文件保存在您想要的位置。
    • 您可以使用 SQLite Studio 或 DB Browser for SQLite 打开该文件,以验证您的数据是否已保存。

    【讨论】:

    • 如果您的设备没有植根,这不是一个解决方案
    【解决方案2】:

    您可以使用 SQLite 浏览器,例如开源多平台 DB Browser for SQLite,或您选择的其他工具。

    接下来是访问 sqlite 文件:

    iOS 模拟器:

    /Users/administrator/Library/Application Support/iPhone Simulator
    

    您可以在 Mac OS X 中从该目录浏览模拟器文件。

    Android 模拟器:

    您可以通过adb shell命令使用命令行浏览文件系统:

    ls - list current directory 
    cd - change current directory
    

    找到应用程序的 Sqlite 文件后,您可以使用 pull cmd 从设备(或模拟器映像)复制文件:

    adb pull /sdcard/file.txt file.txt
    

    【讨论】:

    • 我正在使用 Genymotion 模拟器,希望同样的程序也可以这样做,我在 win 8 pc 中使用 xamarin.forms android @RobertN i
    • 所有 Android 模拟器都以某种方式使用 adb,无法绕过它,Genymotion 打包特定版本,或者您可以使用 Google 提供的最新版本:genymotion.com/#!/support?chapter=adb-connection
    • 这在 Android 上对我有用,还有一些额外的步骤。我必须在运行“adb pull ...”之前运行“adb root”,完成后我运行“adb unroot”(我听说如果不是 unroot,在 VS 中调试可能会出现问题)
    【解决方案3】:

    以下是使用 Rider IDE 以 xamarin 形式访问 sqlite 数据库文件的方法:

    • 设置数据库路径
    private string GetDatabasePath()
    {
        return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "db.db");
    }
    

    记录 Environment.GetFolderPath(Environment.SpecialFolder.Personal) 在我的设备上打印此路径

    /data/user/0/com.companyname.landpriceexplorer/files
    
    • 点击右侧的设备文件资源管理器标签。

    • 在设备文件资源管理器中搜索数据库文件。

    • 双击文件添加到数据源。

    • 打开数据库标签并在那里浏览您的数据。

    【讨论】:

      【解决方案4】:

      我通过几个步骤解决了这个问题:

      在 Windows 上:

      1. 下载 SQLite 查看器,例如 SQLiteStudio。

      2. 查找 .db 或 .db3 文件的存储位置,我是这样做的:

         var databasePath = Path.Combine(FileSystem.AppDataDirectory, "localDB.db3");
        
         Console.WriteLine(databasePath);
        
      3. 对我来说,路径是:/data/user/0/com.companyname.[name]/files/localDB.db3

      4. 查找 Android 调试桥 (adb) .exe 的存储位置。对我来说,它存储在:C:\Users[user]\AppData\Local\Android\Sdk\platform-tools。 (AppData 是一个隐藏文件夹,所以要确保隐藏文件夹是可见的。

      5. 在此文件夹中打开命令提示符。

      6. 通过在命令提示符中输入以下行,尝试将数据库文件复制到计算机上的本地文件夹:

      adb pull [数据库路径] [本地文件夹路径]

      结果:

      adb pull /data/user/0/com.companyname.[name]/files/localDB.db3 C:\Users\[user]\Desktop

      1. 如果您收到错误“无法统计远程对象...权限被拒绝”,您必须确保您拥有 root 权限。为此,请在命令提示符中输入以下行:

      adb 根

      1. 尝试再次复制文件。

      2. 如果文件复制成功,用 SQLiteStudio 打开它。

      等等

      【讨论】:

      • adb root 返回:adbd 不能在生产版本中以 root 身份运行?处于调试模式。
      猜你喜欢
      • 1970-01-01
      • 2014-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2014-05-10
      相关资源
      最近更新 更多