我一直在嘗試在我的android項目中使用sqlite創建一個數據庫,並不明白爲什麼我得到這個味精錯誤「沒有這樣的表」:S我以爲我創建數據庫好。任何幫助?ANDROID sqlite沒有這樣的表
這裏是我的代碼handler_sqlite類:
public class Handler_sqlite extends SQLiteOpenHelper {
public Handler_sqlite(Context ctx)
{
super (ctx, "MiBase", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db)
{
String query = " CREATE TABLE IF NOT EXISTS usuarios (user VARCHAR PRIMARY KEY, password VARCHAR);" ;
db.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase db, int version_ant, int version_post)
{
db.execSQL("DROP TABLE IF EXISTS usuarios");
onCreate(db);
}
public void insertarReg(String user, String password)
{
ContentValues valores = new ContentValues();
valores.put("user", user);
valores.put("password", password);
this.getWritableDatabase().insert("usuarios",null,valores);
}
public void abrir()
{
this.getWritableDatabase();
}
public void cerrar()
{
this.close();
}
public String leer_user()
{
String columnas[]={"user","password"};
Cursor c = this.getReadableDatabase().query("usuarios",columnas,null,null,null,null,null);
int iu;
iu = c.getColumnIndex("user");
c.moveToLast();
return c.getString(iu);
}
public String leer_password()
{
String columnas[]={"user","password"};
Cursor c = this.getReadableDatabase().query("usuarios",columnas,null,null,null,null,null);
int ip;
ip = c.getColumnIndex("password");
c.moveToLast();
return c.getString(ip);
}
}
和我的主要代碼到BD引用:
Handler_sqlite helper = new Handler_sqlite(this);
helper.abrir();
helper.insertarReg(username,passw);
String username2 = helper.leer_user();
String password2 = helper.leer_password();
電流誤差:
錯誤插入密碼= X用戶= Y的android .database.sqlite.SQLiteException:沒有這樣的表:usuarios,而編譯時:INSERT INTO usuarios(密碼,用戶)值(?,?);
在此先感謝。
如果您對onCreate()中的表進行任何更改,您需要增加數據庫版本 –
您可以發佈堆棧跟蹤嗎?另外,請嘗試從表創建SQL語句中刪除「IF NOT EXISTS」。 – Emmanuel
你是什麼意思?我只有在不存在的情況下才創建表格? – tknbr