首页 > 解决方案 > 我无法向 SQLite 插入数据,也看不到我的表

问题描述

我无法将数据插入 SQLite,也看不到我的表。
我尝试在 SQLite 的 DB Browser 中查看该表,但我看不到任何插入的内容,也看不到我创建的行。

这里来自 DataBaseHelper 的插入方法:

//Adding new trainee
public void addTrainee(Trainee trainee) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();

    int count = getShopsCount();

    values.put(COL_ID, 1);
    values.put(COL_USERNAME, trainee.getUsername());
    values.put(COL_NAME, trainee.getName());
    values.put(COL_PASS, trainee.getPassword());
    values.put(COL_EMAIL, trainee.getEmail());

    // Inserting Row
    db.insert(TABLE_NAME, null, values);
    db.close();// Closing database connection
}

// Getting shops Count
public int getShopsCount() {
    String countQuery = "SELECT  * FROM " + TABLE_NAME;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(countQuery, null);
    cursor.close();
    // return count
    return cursor.getCount();
}

在此处插入主要活动的注册:

public void confirminput(View v) {
    //If one of the validate retuen false the validation faild.
    if (  !validateEmail() || !validateUsername() || !validateName() || !validatePassword()) {
        Toast.makeText(getApplicationContext(), " Validation NOT OK", Toast.LENGTH_LONG).show();
        return;
    }

    //Inserting Trainee.
    Trainee trainee = new Trainee();
    trainee.setUsername(textInputUsername.getEditText().getText().toString().trim();
    trainee.setName(textInputName.getEditText().getText().toString().trim());
    trainee.setEmail(textInputEmail.getEditText().getText().toString().trim());
    trainee.setPassword(textInputPassword.getEditText().getText().toString().trim();

    //Insert Method data .
    myDb.addTrainee(trainee);


}

创建():

//onCreat
@Override
public void onCreate(SQLiteDatabase db) {

    String CREATE_CONTACTS_TABLE = "CREATE TABLE "+ TABLE_NAME + "("
            + COL_ID + " INTEGER PRIMARY KEY," + COL_USERNAME + " TEXT,"
            + COL_NAME  + " TEXT," + COL_PASS + " TEXT," +COL_EMAIL + " TEXT" + ")";
    db.execSQL(CREATE_CONTACTS_TABLE);
    this.db = db;
}

在此处输入图像描述

标签: javaandroiddatabasesqlite

解决方案


感谢您帮助问题是创建错误的表

@Override
public void onCreate(SQLiteDatabase db) {

    String createTraineeTable = "create table trainee ("+COL_ID+" integer primary key AUTOINCREMENT  ," +
            COL_USERNAME+" text not null, "+COL_NAME+" text not null, "+COL_PASS+" text not null,"+COL_EMAIL+" text not null );";

    db.execSQL(createTraineeTable);
    this.db = db;
}

推荐阅读