Android 需要sqlite db不接受空值
我的sqlite db接受空值,我不知道为什么。我的表是“主键”,列是“文本不为空”。Db不应接受空值、非唯一值和大于第1行的插入 DB: 插入方法:Android 需要sqlite db不接受空值,android,sqlite,insert,null,Android,Sqlite,Insert,Null,我的sqlite db接受空值,我不知道为什么。我的表是“主键”,列是“文本不为空”。Db不应接受空值、非唯一值和大于第1行的插入 DB: 插入方法: private void insertCredentials(RegDetails regDetails){ LoginDB androidOpenDBHelper = new LoginDB(this); SQLiteDatabase sqliteDB = androidOpenDBHelpe
private void insertCredentials(RegDetails regDetails){
LoginDB androidOpenDBHelper = new LoginDB(this);
SQLiteDatabase sqliteDB = androidOpenDBHelper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(LoginDB.COLUMN_NAME_USERNAME, rUsername);
contentValues.put(LoginDB.COLUMN_NAME_PASSWORD, rPasscode);
long affectedColumnid = sqliteDB.insert(LoginDB.TABLE_NAME_CREDENTIALS, null, contentValues);
if(affectedColumnid > 1){
Toast.makeText(getApplicationContext(), "Account Already Exist! Please login" + affectedColumnid, Toast.LENGTH_SHORT).show();
finish();
}else {
Toast.makeText(getApplicationContext(), "Credentials Saved! Please login" + affectedColumnid, Toast.LENGTH_SHORT).show();
}
sqliteDB.close();
finish();
}
}
这是因为您不使用SQLite网站上描述的冲突失败: 如果您想要查询示例,可以查看前面的问题: 希望这对你有帮助
旁注:对于构建长字符串,最好使用StringBuilder。rUsername和rPassword来自哪里?如果这些是从一个编辑文本(或类似的)中读取的,那么空白值不是“代码> null <代码>而是一个空字符串(<代码>)>代码>。<代码>(受影响的CulnID < 0){< /Cult> <代码> SqLeDeb.如果无法插入,则返回
-1
。我不同意。启用非空
约束不需要对冲突使用,它只是提供了一种在错误发生后处理错误的不同方法。
private void insertCredentials(RegDetails regDetails){
LoginDB androidOpenDBHelper = new LoginDB(this);
SQLiteDatabase sqliteDB = androidOpenDBHelper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(LoginDB.COLUMN_NAME_USERNAME, rUsername);
contentValues.put(LoginDB.COLUMN_NAME_PASSWORD, rPasscode);
long affectedColumnid = sqliteDB.insert(LoginDB.TABLE_NAME_CREDENTIALS, null, contentValues);
if(affectedColumnid > 1){
Toast.makeText(getApplicationContext(), "Account Already Exist! Please login" + affectedColumnid, Toast.LENGTH_SHORT).show();
finish();
}else {
Toast.makeText(getApplicationContext(), "Credentials Saved! Please login" + affectedColumnid, Toast.LENGTH_SHORT).show();
}
sqliteDB.close();
finish();
}
}