Android 编译时:插入Tabellik(judul,LirikPuuh)值(?,)

Android 编译时:插入Tabellik(judul,LirikPuuh)值(?,),android,Android,我的sqlite有问题 error table tabellirik has no column named judul (code 1): , while compiling: INSERT INTO tabellirik(judul,lirikpupuh) VALUES (?,?) 我有同样的错误,我有一个问题,如果我调试应用程序,我使用Android Studio,文件数据库sqlite的位置在哪里 请帮帮我:) public类DBHelper扩展了SQLiteOpenHelper{ 私

我的sqlite有问题

error table tabellirik has no column named judul (code 1): , while compiling: INSERT INTO tabellirik(judul,lirikpupuh) VALUES (?,?)
我有同样的错误,我有一个问题,如果我调试应用程序,我使用Android Studio,文件数据库sqlite的位置在哪里

请帮帮我:)

public类DBHelper扩展了SQLiteOpenHelper{
私有静态最终int数据库_VERSION=1;
私有静态最终字符串数据库\u NAME=“Macepat”;
私有静态最终字符串表\u MUPUH=“tabellirik”;
私有静态最终字符串密钥\u ID=“ID”;
私有静态最终字符串JUDUL=“JUDUL”;
私有静态最终字符串键\u MUPUH=“lirikpuuh”;
公共DBHelper(上下文){
super(上下文、数据库名称、null、数据库版本);
}
@凌驾
public void onCreate(SQLiteDatabase db){
字符串CREATE_LIRIK_TABLE=“CREATE TABLE”+TABLE_MUPUH+”(“
+密钥ID+“整数主键,”
+朱杜尔+“文本,”
+键_MUPUH+“文本”;
execSQL(创建lik表);
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
db.execSQL(“如果存在删除表”+表_MUPUH);
onCreate(db);
}
公共国际地址(Lirik Lirik){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues=新的ContentValues();
value.put(JUDUL,lirik.getJudul());
value.put(KEY_MUPUH,lik.getlik());
intid=(int)db.insert(TABLE_MUPUH,null,value);
db.close();
返回id;
}
public int editrik(Lirik Lirik,字符串位置){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues=新的ContentValues();
value.put(JUDUL,lirik.getJudul());
value.put(KEY_MUPUH,lik.getlik());
返回db.update(表μMUPUH,值,键μID+“=?”,
新字符串[]{String.valueOf(position)});
}
公共布尔deleteLirik(长idlik){
SQLiteDatabase db=this.getWritableDatabase();
返回db.delete(TABLE_MUPUH,KEY_ID+“=”+IDlirik,null)>0;
}
公共lik getlik(字符串id){
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.query(TABLE_MUPUH,新字符串[]{KEY_ID
,JUDUL,KEY_MUPUH},KEY_ID+“=?”,
新字符串[]{String.valueOf(id)},null,null,null);
如果(光标!=null)
cursor.moveToFirst();
Lirik Lirik=新的Lirik(cursor.getString(1),
getString(2));
db.close();
返回lirik;
}
公共字符串[]GetAllLik(){
ArrayList lirikList=新的ArrayList();
String selectQuery=“SELECT*FROM”+表\u MUPUH;
试一试{
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.rawQuery(selectQuery,null);
if(cursor.moveToFirst()){
做{
String lirik=cursor.getString(1)+“,“+cursor.getString(2)+”,“+cursor.getString(3);
lirikList.add(lirik);
}while(cursor.moveToNext());
}
String[]liriks=新字符串[lirikList.size()];
db.close();
返回(lirikList.toArray(liriks));
}
捕获(例外e){
Log.d(“错误”,例如getMessage());
返回null;
}
}
}

谢谢

您的表没有创建,因为您在
create
语句中遗漏了一些空格,并且无法针对不存在的表编译
insert

String CREATE_LIRIK_TABLE = "CREATE TABLE " + TABLE_MUPUH + "("
    + KEY_ID + " INTEGER PRIMARY KEY,"
    + JUDUL + " TEXT,"
    + KEY_MUPUH + " TEXT)";
此外,您在
drop
语句中遗漏了一些空格:

db.execSQL("DROP TABLE IF EXISTS " + TABLE_MUPUH);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_MUPUH);