我尝试从表中加载值列表,但游标返回的长度为-1?
是否有可能在Android模拟器上查看sqlite数据库?
错误的代码:
final Cursor c = db.query(
ACCESS_TOKEN_TABLE,
new String[] { ACCESS_TOKEN_COL_ID, ACCESS_TOKEN_COL_VALUE },
ACCESS_TOKEN_COL_SERVER_ID + "=" + serverId,
null,
null,
null,
null);
public static final String COL_ID = "_id";
public static final String ACCESS_TOKEN_TABLE = "accesstoken";
public static final String ACCESS_TOKEN_COL_ID = COL_ID;
public static final String ACCESS_TOKEN_COL_SERVER_ID = "server_id";
public static final String ACCESS_TOKEN_COL_VALUE = "value";
数据库中有一个条目。 ServerID的值为1,并且存在一个条目,其中ServerID为1.
此致 xZise
PS:只有两个问题才能打开数据库。
答案 0 :(得分:3)
如果你使用CLI接口“adb -e shell”,你有一个sqlite3命令。 更好 - 我知道一个可以使用ddms查看sqlite数据库内容的eclipse插件。但我个人最喜欢的是将db文件从模拟器中拉出来,并使用sqlite数据库浏览器查看内容。
答案 1 :(得分:2)
getCount()= -1 - >无数......(你确定你的查询没问题吗?)
不知道如何使用Android模拟器查看sqlite数据库,但您可以使用Root Explorer等应用程序查看数据库。
答案 2 :(得分:0)
如果游标为-1,则SQL语句不返回任何结果。也许你是要添加用于SQL select语句的代码。
至于第二个,查看数据库 - 是的,这是可能的:
在Eclipse,DDMS视图中,单击Devices选项卡中的模拟器名称(如果未显示Devices选项卡:Window-> Show View-> Devices)
然后单击文件资源管理器选项卡(如果选项卡未显示:Window-> Show View-> File Explorer)
现在浏览文件树。你需要去: 数据/数据/ com.package.name /数据库
现在单击要检查的数据库的名称。您需要将其复制到您的计算机上。 (为此,请单击带有箭头的软盘图片。将其保存在您可以找到的位置。)
您需要一个SQLite浏览器,例如SQLite Manager add-on for Firefox
在Firefox中,打开SQLite Manager (工具 - > SQLite Manager)
在SQLite Manager中,单击数据库,连接数据库(您可能必须将文件类型从 SQLite DB文件(.sqlite;)更改为所有文件< / strong>因为Android DB不必在文件上加上.sqlite扩展名
另一种选择是使用Questiod SQLite Browser插件进行日食 - 我刚刚添加了这个 - 让上面的过程变得容易两倍!
答案 3 :(得分:0)
Ahr ....我有两条线到高点: 所以问题不在于游标返回负长度,问题是它不能给我列的索引。
我很抱歉。由于另一个问题,我发布了一个新问题: Cursor doesn't find columns?
此致 xZise