我想从两个编辑文本中输入姓名和电话号码。我使用两个按钮保存并使用列表视图在模拟器中显示它。输入姓名后,当我单击“保存”按钮时如何检查我是否已经输入了相同的名字。我是 Android 新手,解释会非常有帮助。
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE "+tbname+"("+Key_id+" INTEGER PRIMARY KEY AUTOINCREMENT, "+Key_name+" TEXT,"+Key_mobile+" TEXT)");
}
public void n(String aa, String bb) {
SQLiteDatabase db=this.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put(Key_name, aa);
cv.put(Key_mobile, bb);
db.insert(tbname, Key_name, cv);
db.close();
}
public Cursor cr()
{
SQLiteDatabase db=getReadableDatabase();
String [] colms=new String[]{Key_id+" as _id",Key_name,Key_mobile};
Cursor cur=db.query(tbname, colms, null, null, null, null, null);
cur.moveToFirst();
return cur;
}
我将首先通过添加 NOT NULL 和 UNIQUE 约束来更改表定义。
db.execSQL("CREATE TABLE "+tbname+"("+Key_id+" INTEGER PRIMARY KEY AUTOINCREMENT, "+Key_name+" TEXT NOT NULL UNIQUE,"+Key_mobile+" TEXT)");
然后您可以选择用于插入的方法。您可以使用:
insertOrThrow
将返回新记录的 id,如果出现错误,则返回 -1(并且没有唯一名称的约束失败将是一个错误)。
insertWithOnConflict
如果输入参数 'conflictAlgorithm' = CONFLICT_IGNORE 则返回新记录的 id 或现有行的主键,如果有错误则返回 -1。
就我个人而言,我会使用insertWithOnConflict
设置了 CONFLICT_IGNORE 标志。这样您就可以获取重复记录的行 ID(并且不允许输入重复记录)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)