0

我创建了这张表

private static class PuntataMetaData {
    static final String TABLE_NAME = "puntata";
    static final String ID = "_id";
    static final String PALINSESTO = "palinsesto";
    static final String NUMEROPALINSESTO = "numeroPalinsesto";
    static final String ESITO = "esito";
    static final String PARTITA = "partita";
    static final String QUOTAZIONE = "quotazione";
}


private static final String PUNTATA_TABLE_CREATE =
        "CREATE TABLE " + PuntataMetaData.TABLE_NAME + " (" +
                PuntataMetaData.ID + " integer primary key autoincrement, " +
                PuntataMetaData.PALINSESTO + " double not null, " +
                PuntataMetaData.NUMEROPALINSESTO + " integer not null, " +
                PuntataMetaData.ESITO + " text not null, " +
                PuntataMetaData.PARTITA + "text not null," +
                PuntataMetaData.QUOTAZIONE + " text not null);";

现在,当我搜索执行此代码时

public void inserisciInSchedina(Partite p, String esito, String quot){
    db = getWritableDatabase();
    ContentValues cv = createPuntataContentValues(p.getPalinsesto(), p.getNumeroEvento(), esito, quot, p.getPartita());
    db.insert(PuntataMetaData.TABLE_NAME, null, cv);
    db = getReadableDatabase();
}

private ContentValues createPuntataContentValues(long pal, int numPal, String temp, String temp1, String par) {
    ContentValues cv = new ContentValues();
    cv.put(PuntataMetaData.PALINSESTO, pal);
    cv.put(PuntataMetaData.NUMEROPALINSESTO, numPal);
    cv.put(PuntataMetaData.ESITO, temp);
    cv.put(PuntataMetaData.PARTITA, "Inter-Roma");
    cv.put(PuntataMetaData.QUOTAZIONE, temp1);
    return cv;
}

Android的调试告诉我以下错误:

android.database.sqlite.SQLiteException: table puntata has no column named partita: ,同时编译: INSERT INTO puntata(numeroPalinsesto,esito,quotazione,partita,palinsesto) VALUES (?,?,?,?,?)

我不明白错误在哪里,因为数据库中存在“Partita”字段谢谢

4

3 回答 3

1
PuntataMetaData.PARTITA + "text not null," +

您正在创建一个具有 namepartitatext和 type的列not null

于 2013-10-09T19:43:07.317 回答
1

一旦您更改数据库,我的意思是表就像您更改表的创建一样,然后您需要在模拟器中卸载应用程序并再次运行它,这将创建新版本的数据库,然后您可以添加数据

于 2013-12-05T14:42:13.667 回答
-1

转到您的设备或模拟器上的应用程序管理器,然后单击“清除数据”按钮。然后再次检查。也许您首先创建没有 partita 列的表,然后您决定这样做。最好在 SQLiteOpenHelper 类中使用数据库版本来控制这些问题。

于 2013-10-09T17:45:01.820 回答