我是Android开发新手,我有一个带有以下代码的android数据库表
公共类SoftCopyDatabase扩展了SQLiteOpenHelper {
private static final String DATABASE_NAME = "SoftCopy.db";
private static final int DATABASE_VERSION = 1;
public SoftCopyDatabase(Context ctx) {
super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + SUBJECT
+ " TEXT NOT NULL," + TOPIC + " TEXT NOT NULL, "
+ LECTURENUMBER + " TEXT NOT NULL, " + PAGENUMBER
+ " TEXT NOT NULL, " + DATE + " TEXT NOT NULL, " + _DATA
+ " TEXT NOT NULL);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}}
我正在尝试使用addInfo()方法添加到此表中,如下所示:
private void addInfo(){
ContentValues values = new ContentValues();
values.put(SUBJECT, SaveData._subject);
values.put(TOPIC, SaveData._topic);
values.put(LECTURENUMBER, SaveData._lecturenumber);
values.put(PAGENUMBER, Integer.toString(PAGE_NUMBER));
values.put(DATE, SaveData._date);
values.put(_DATA, SaveData.FILE_NAME + ".png");
softCopyDB.getWritableDatabase().insertOrThrow(TABLE_NAME, null, values);
}
但是当我增加PAGE_NUMBER的值(Page_NUMBER是一个整数)同时保持所有其他条目相同并调用addInfo()时,我收到错误 softCopyDB.getWritableDatabase()。insertOrThrow(TABLE_NAME,null,values);
如下
08-21 18:16:11.216:ERROR / AndroidRuntime(329):引起:android.database.sqlite.SQLiteConstraintException:错误代码19:约束失败 08-21 18:16:11.216:ERROR / AndroidRuntime(329):在android.database.sqlite.SQLiteStatement.native_execute(Native方法) 08-21 18:16:11.216:ERROR / AndroidRuntime(329):在android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:55) 08-21 18:16:11.216:ERROR / AndroidRuntime(329):在android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1549) 08-21 18:16:11.216:ERROR / AndroidRuntime(329):在android.database.sqlite.SQLiteDatabase.insertOrThrow(SQLiteDatabase.java:1432) 08-21 18:16:11.216:ERROR / AndroidRuntime(329):at neduet.telecom.softcopy.surface.LectureNoting.addInfo(LectureNoting.java:161)
请帮我整理一下。
答案 0 :(得分:0)
我能看到的唯一限制是PK和NOT NULL。由于_ID不是插入的一部分,我会检查您的文本值为null。