【发布时间】:2016-01-31 14:28:28
【问题描述】:
我的应用中有一个列表视图,一些数据在填充列表视图之前保存到数据库中。
我的问题是看不到数据,如何验证数据是否存储在数据库中。
【问题讨论】:
标签: sqlite xamarin xamarin.forms
我的应用中有一个列表视图,一些数据在填充列表视图之前保存到数据库中。
我的问题是看不到数据,如何验证数据是否存储在数据库中。
【问题讨论】:
标签: sqlite xamarin xamarin.forms
您可以使用 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
【讨论】:
adb,无法绕过它,Genymotion 打包特定版本,或者您可以使用 Google 提供的最新版本:genymotion.com/#!/support?chapter=adb-connection
以下是使用 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
双击文件添加到数据源。
打开数据库标签并在那里浏览您的数据。
【讨论】:
我通过几个步骤解决了这个问题:
在 Windows 上:
下载 SQLite 查看器,例如 SQLiteStudio。
查找 .db 或 .db3 文件的存储位置,我是这样做的:
var databasePath = Path.Combine(FileSystem.AppDataDirectory, "localDB.db3");
Console.WriteLine(databasePath);
对我来说,路径是:/data/user/0/com.companyname.[name]/files/localDB.db3
查找 Android 调试桥 (adb) .exe 的存储位置。对我来说,它存储在:C:\Users[user]\AppData\Local\Android\Sdk\platform-tools。 (AppData 是一个隐藏文件夹,所以要确保隐藏文件夹是可见的。
在此文件夹中打开命令提示符。
通过在命令提示符中输入以下行,尝试将数据库文件复制到计算机上的本地文件夹:
adb pull [数据库路径] [本地文件夹路径]
结果:
adb pull /data/user/0/com.companyname.[name]/files/localDB.db3 C:\Users\[user]\Desktop
adb 根
尝试再次复制文件。
如果文件复制成功,用 SQLiteStudio 打开它。
等等
【讨论】: