ANDROID sqlite没有这样的表
我一直试图在我的android项目中用sqlite创建一个DB,但不明白为什么会出现这样的msg错误“no-some table”:我以为我创建的DB很好。有什么帮助吗 下面是我的代码处理程序\u sqlite类:ANDROID sqlite没有这样的表,android,sqlite,Android,Sqlite,我一直试图在我的android项目中用sqlite创建一个DB,但不明白为什么会出现这样的msg错误“no-some table”:我以为我创建的DB很好。有什么帮助吗 下面是我的代码处理程序\u sqlite类: public class Handler_sqlite extends SQLiteOpenHelper { public Handler_sqlite(Context ctx) { super ( ctx, "MiBase", null, 1);
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();
当前错误:
插入password=x user=y android.database.sqlite.SQLiteException时出错:没有这样的表:usuarios,编译时:插入usuarios(password,user)值(?,)
提前感谢。您确定CREATETABLE语句正确吗?(即执行者不会抛出任何异常/错误等) DB真的存在吗?如果您使用adb shell并作为应用程序运行,请查看db目录(名称可能因版本而异),并查看是否存在usarios.sqlite文件
您确定所有代码中的表名都没有拼写错误吗?(即使用一个常量,而不是全部重新键入)当您将数据库的名称传递给构造函数时,它应该包含.db扩展名(即MiBase.db)。如果您在onCreate()中对表进行任何更改,您需要增加数据库版本能否发布stacktrace?另外,如果不存在,请尝试从表创建SQL语句中删除
?我只是在不存在的情况下创建表,对吗?emmanuel,我是编程/android世界的新手,stacktrace是什么?它是您看到错误的地方。在这里复制并通过它(这里我指的是在你的问题中编辑它)。