没有这样的列错误SQLite Android



我有下一个代码来创建我的数据库。

public class ModeloPaciente extends SQLiteOpenHelper {
//Tabla Proposicion Condicional
static final String proposicionCondicionalTabla="ProposicionCondicional";
static final String colproposicionCondicionalID="ProposicionCondicionalID";
static final String colproposicionCondicionalDescripcion="ProposicionCondicionalDescripcion";
static final String colproposicionCondicionalcuandoInferirForeign="CuandoInferir";
public ModeloPaciente(Context context) {
    super(context, dbName, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {    
db.execSQL("CREATE TABLE "+proposicionCondicionalTabla+" " +
"("+colproposicionCondicionalID+ " INTEGER PRIMARY KEY AUTOINCREMENT, " +
colproposicionCondicionalDescripcion+ " TEXT NOT NULL," +
colproposicionCondicionalcuandoInferirForeign+" INTEGER NOT NULL,"+
"FOREIGN KEY ("+colproposicionCondicionalcuandoInferirForeign+") REFERENCES    "+cuandoInferirTabla+"    
("+colcuandoInferirID+"));");             
}

后来我像这样将数据放在表中

public boolean insertarProposicion(Proposicion proposicion) {
    try {
           SQLiteDatabase db=this.getWritableDatabase();
           ContentValues cv= new ContentValues();
           cv.put(colproposicionCondicionalDescripcion, proposicion.getProposicionCondicionalDescripcion());               
           cv.put(colproposicionCondicionalcuandoInferirForeign, getCuandoInferirID(proposicion.getProposicionCondicionalCuandoInferirForeign()));
           db.insert(proposicionCondicionalTabla, colproposicionCondicionalID, cv);
         //db.close();
           return true;
    } catch (Exception e) {
        System.out.println(e);
        return false;
    }

但是我得到一个错误,说:

06-07 15:36:15.507: E/Database(257): Error inserting CuandoInferir=1 ProposicionCondicionalDescripcion=Se debe inferir acerca de los dias de marcha realizados o no
06-07 15:36:15.507: E/Database(257): android.database.sqlite.SQLiteException: no such column: CuandoInferir: , while compiling: INSERT INTO ProposicionCondicional(CuandoInferir, ProposicionCondicionalDescripcion) VALUES(?, ?);

我检查了数据库,它有相应的列"CuandoInferir"。¿发生了什么,我不知道?感谢您的帮助

您可能正在使用较旧版本的数据库。清除应用的数据,然后重试:

设置 -->应用程序 --> 管理应用程序 -->

[您的应用程序] --> 清除数据

您的代码似乎很好,但是我会检查现有数据库。检查"提议"表中的列名。您可以通过按照以下步骤在sqlite3中打开数据库来做到这一点(显然在执行步骤之前将手机连接到PC)

adb shell
cd /data/data/<your.applications.package>/databases
sqlite3 <databases_name>
.schema

查看表格是否真的有"CuandoInferir"列。如果没有,请尝试重新创建表。

最新更新