java - 将数据插入 SQLite 数据库时出错?

标签 java android sqlite

我不断收到此错误

07-10 21:50:06.296: ERROR/Database(538): android.database.sqlite.SQLiteException: no such table: task: , while compiling: INSERT INTO task(descrip, time, title, date, status) VALUES(?, ?, ?, ?, ?);

当我执行这行代码时。我是否以错误的方式插入它?

private View.OnClickListener onSave = new View.OnClickListener() {

    @Override
    public void onClick(View v) {
    String type = null;

    switch(status.getCheckedRadioButtonId()){
    case R.id.completed:
        type = "completed";
        break;
    case R.id.in_progress:
        type="in-progress";
        break;
    }
    if(taskId == null){
        helper.insert(title.getText().toString(), descrip.getText().toString(), date.getText().toString(), time.getText().toString(), status.toString());
            Toast.makeText(getBaseContext(), "Task Saved", Toast.LENGTH_SHORT);
    }
    else{
        helper.update(taskId, title.getText().toString(), descrip.getText().toString(), date.getText().toString(), time.getText().toString(), type);

    }

    finish();

    }
};

这是我的 SQL 数据库插入方法:

class TaskHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "taskask.db";
private static final int SCHEMA_VERSION = 1;

public TaskHelper(Context context){
    super(context, DATABASE_NAME, null, SCHEMA_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE reminders (_id   INTEGER   PRIMARY   KEY    AUTOINCREMENT, title TEXT, descrip TEXT, date TEXT, time TEXT, type TEXT)");


}


@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
    // TODO Auto-generated method stub

}

public Cursor getAll(){
    return(getReadableDatabase().rawQuery("SELECT _id, title, descrip, date, time, type FROM reminders ORDER BY title", null));

}
public void insert(String title, String descrip, String date, String time, String status){
    ContentValues cv = new ContentValues();
    cv.put("title", title);
    cv.put("descrip", descrip);
    cv.put("date", date);
    cv.put("time", time);
    cv.put("status", status);
    getWritableDatabase().insert("task", "name", cv);
}
public Cursor getById(String id){
    String [] args = {id};

    return(getReadableDatabase()    
            .rawQuery("SELECT _id, title, descrip, date, time, status FROM task WHERE _ID=?",args));


}
public void update(String id, String title, String descrip, String date, String time, String type){
    ContentValues cv = new ContentValues();
    String [] args={id};
    cv.put("title", title);
    cv.put("descrip", descrip);
    cv.put("date", date);
    cv.put("time", time);
    cv.put("status", type);
    getWritableDatabase().update("task", cv, "_ID=?", args);


}
public String getTitle(Cursor c){
    return(c.getString(2));
}
public String getDescrip(Cursor c){
    return(c.getString(3));
}
public String getDate(Cursor c){
    return(c.getString(4));

}
public String getTime(Cursor c){
    return(c.getString(5));
}
public String getStatus(Cursor c){
    return(c.getString(6));
}

}

最佳答案

您正在插入表“任务”,但您的创建语句调用表“提醒”。你的表名混淆了吗?

关于java - 将数据插入 SQLite 数据库时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6643973/

相关文章:

java - Java 中的 "field not visible"错误

android - Android 4 上的 html5 视频 : play fullscreen then redirect to another webpage - not working

ruby-on-rails - $rake db :migrate An error has occurred, 这个和所有后来的迁移都被取消了

sqlite - 如果存在sqlite,重命名列?

Java录制/混合两个音频流

java - 为什么java程序中的输出打印值300

android - 将我的 Activity 带回顶部?

android - 是否有 Android Material Design 入门/教程覆盖/展示库?

iphone - 什么被认为是iPhone应用程序的大型数据库?

java - Flutter 原生 android 回调