Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数据插入SQLite数据库时出错?_Java_Android_Sqlite - Fatal编程技术网

Java 将数据插入SQLite数据库时出错?

Java 将数据插入SQLite数据库时出错?,java,android,sqlite,Java,Android,Sqlite,我一直在犯这个错误 07-10 21:50:06.296:错误/数据库(538):android.Database.sqlite.SQLiteException:没有这样的表:任务:,编译时:插入任务(描述、时间、标题、日期、状态)值(?,,,,,,?) 当我执行这行代码时。我插错了吗 private View.OnClickListener onSave = new View.OnClickListener() { @Override public void onClick(

我一直在犯这个错误

07-10 21:50:06.296:错误/数据库(538):android.Database.sqlite.SQLiteException:没有这样的表:任务:,编译时:插入任务(描述、时间、标题、日期、状态)值(?,,,,,,?)

当我执行这行代码时。我插错了吗

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));
}

}

您正在将“任务”插入表中,但create语句调用了表“提醒”。您的表名弄错了吗?

您需要重新安装应用程序,更改才能生效。删除应用程序并重新安装,否则如果您继续在现有apk上运行,数据库将预先列出。

您如何准备数据库?什么时候创建表?有一个叫做“任务”的表格吗?您是否在一个特殊目录中创建了表,并且在插入时没有指定?我刚刚用我的数据库类更新了上面的问题。我更改了它,仍然得到错误07-10 22:10:22.136:error/Database(638):android.Database.sqlite.SQLiteException:表提醒没有名为status:的列,而编译时:insert-INTO-rementers(descripp、time、title、date、status)值(?、、?、?、?);您是否确实在读取这些错误消息?您创建的表中没有名为status的列。如果仍然出现完全相同的错误,则表示您仍然没有任务表。