我面临的一个问题是,当我查看sqlite数据库时,它的值比我从DatabaseUtils.dumpCursor()
方法看到的更多。
我还使用DB Browser for SQLite软件来可视化我的数据库并控制它的简便方法。在Sqlite命令行中以及上面提到的软件中,向我显示数据库表具有两条记录,但是当我运行我的应用程序并从同一张表中选择所有记录时,该记录仅显示一条记录。那怎么可能?
此外,当我使用android studio手动打开sqlite数据库时,显示(实际上很难识别那些是存储的值,因为章程无法识别)显示的值超过了DatabaseUtils.dumpCursor()
方法或sqlite命令中的值我以前见过的那条线。
我已经在这里测试过代码了
package com.me.doctor.doctor_me;
import android.content.Context;
import android.database.Cursor;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
public class DatabaseOperation extends SQLiteAssetHelper {
public static final int DB_VERSION = 1;
public static final String DB_NAME= "my_doc_db.db";
public DatabaseOperation(Context context) {
super(context, DB_NAME,null, DB_VERSION);
}
// Verify user Loggin
public boolean loginUser(String email, String password) {
SQLiteDatabase db = this.getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String sqlTables = "users";
qb.setTables(sqlTables);
//Cursor c = qb.query(db,null,"email = ? AND password = ?",new String[]{email,password},null,null,null);
Cursor c = qb.query(db,null,null,null,null,null,null);
DatabaseUtils.dumpCursor(c);
System.out.println("count "+c.getCount());
//DatabaseUtils.dumpCursor(c);
if (c.getCount() > 0) {
return true;
} else {
return false;
}
}
}
dumpCoursor日志猫结果为
com.me.doctor.doctor_me I/System.out: Dumping cursor android.database.... 0 { user_id=1 user_name=test telephone=0711229266 nic=952444140v gender=Male email=test@gmail.com password=test } 10-03 10:30:45.910 3619-3619/com.me.doctor.doctor_me I/System.out:
只有一条记录
我只是导航到位于的数据库,然后使用给我这些结果的命令行运行Sqlite命令。
当我看到使用DB Browser for SQlite软件显示给我这个结果
当我刚刚使用android studio打开该数据库时,就会得到这个结果
= indexsqlite_autoindex_users_1users
ÈÁÁÁ B '!+test user two077123456791236129vFemaletest2@gmail.comtest2 + test user three ? )!)t; !!+test20711229266941234566vFemaletest2@gmail.comtest26 !!)test0711229266952444140vMaletest@gmail.comtest
ö üöäää
实际上,这些记录是我过去输入的,但是我使用SQlite Software的DB Browser删除了它们,然后使用该软件手动创建了该数据库。谁能知道这里是什么问题,我只需要简单的控制方法,而不用编写很多代码。