我的代码有什么问题吗? setStatus总是返回-1。一直在追踪错误的代码,但我找不到它。也许你们在这里可以。非常令人沮丧。我的数据库不会添加值。我的代码是
这是我怎么叫数据库:
SQLDatabaseLevelOne sql;
sql = new SQLDatabaseLevelOne(MainActivity.this);
sql.open();
sql.setStatus("1");
sql.close();
这是从我SQLDatabaseLevelOne.class:
public static final String KEY_ID = "_id";
public static final String KEY_QUESTION_STATUS = "_STATUS";
public static final String KEY_SCORE = "_SCORE";
//public static final String KEY_INDEX = "_INDEX";
private static final String DATABASE_NAME = "passworddb";
private static final String DATABASE_TABLE = "passwordtable";
private static final int DATABASE_VERSION = 1;
//private int index_score;
private DbHelper dbHelper;
private final Context dbContext;
private SQLiteDatabase sqlDatabase;
private static class DbHelper extends SQLiteOpenHelper {
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
/*database.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_QUESTION_STATUS + " TEXT NOT NULL, " +
KEY_SCORE + " TEXT NOT NULL, " +
KEY_INDEX + " TEXT NOT NULL);");*/
database.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_QUESTION_STATUS + " TEXT NOT NULL, " +
KEY_SCORE + " TEXT NOT NULL);");
}
@Override
public void onUpgrade(SQLiteDatabase database, int arg1, int arg2) {
database.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(database);
}
}
public SQLDatabaseLevelOne(Context context) {
dbContext = context;
}
public long setStatus (String status) {
ContentValues dbContentValues = new ContentValues();
dbContentValues.put(KEY_QUESTION_STATUS, status);
//dbContentValues.put(KEY_SCORE, score);
return sqlDatabase.insert(DATABASE_TABLE, null, dbContentValues);
}
public void open() {
dbHelper = new DbHelper(dbContext);
sqlDatabase = dbHelper.getWritableDatabase();
return;
}
public void close() {
dbHelper.close();
}
因为“KEY_SCORE TEXT NOT NULL”有一个约束(NOT NULL),因为你不给它一个值。 – njzk2 2013-02-25 17:05:19
我不知道该如何谢谢大家。所有的答复都是正确的。我接受了答案。我一直在使用NOT NULL而不考虑对数据库的影响。 – droidH 2013-02-25 17:18:14
没关系,我们都有足够的分数。在未来的某一天,通过帮助别人简单地“付出代价”。 – Sam 2013-02-25 17:20:33