为什么在Android模拟器中不使用SQLite 3数据库值

时间:2018-10-03 05:22:34

标签: android sqlite

我面临的一个问题是,当我查看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命令。

enter image description here

当我看到使用DB Browser for SQlite软件显示给我这个结果

enter image description here

当我刚刚使用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删除了它们,然后使用该软件手动创建了该数据库。谁能知道这里是什么问题,我只需要简单的控制方法,而不用编写很多代码。

0 个答案:

没有答案