我尝试在database
中创建一个新的table
和constructor class
,但我发现这行错误:
db.execSQL("CREATE TABLE IF NOT EXIST tblApp ( _ID INTEGER PRIMARY kEY AUTOINCREMENT UNION, Title TEXT )",null);
并且崩溃了我的应用程序。
这是我的班级:
package ir.rezvania.modirbash;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
public class db {
Context ctx;
Cursor crs;
private SQLiteDatabase db;
public db(Context ctx){
this.ctx=ctx;
db = ctx.openOrCreateDatabase("`dbApp`", Context.MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXIST `tblApp` ( _ID Integer Primary key autoincrement union, Title Text )",null);
}
public void Insert(String FILDS,String VALUES){
db.execSQL("INSERT INTO `tblApp` ("+FILDS+")VALUES("+VALUES+");");
}
public void Update(String ID,String COLUMN,String VALUE){
db.execSQL("UPDATE `tblAPP` SET"+COLUMN+"="+VALUE+"WHERE _ID="+ID+";");
}
public void Delete(String ID){
db.execSQL("DELETE FROM `tblApp` WHERE _ID="+ID+";");
}
public Cursor Show(){
crs=db.rawQuery("SELECT * FROM `tblApp`",null);
return crs;
}
public void finalize(){
db.close();
}
}
答案 0 :(得分:0)
您的表创建失败,因为您使用了错误的措辞。您需要使用它IF NOT EXISTS
。为简单起见,您应该为所有键使用大写字母。此外,您不需要使用`
,因为tblApp
不是关键字,union
对您放置它和AUTOINCREMENT
is not needed的位置没有任何意义。
db.execSQL("CREATE TABLE IF NOT EXISTS tblApp (_ID INTEGER PRIMARY KEY, Title TEXT)", null);
答案 1 :(得分:-1)
在SQLite中,声明为INTEGER PRIMARY KEY的列将自动递增。 SQLite中没有自动增量关键字,这就是您收到错误的原因。 您可以在SQLite FAQ上找到更多信息。