我想提出一個Android應用程序,和ATM我不知道如果在創建我的數據庫我已經檢查了我的logcat的,我沒有看到任何跡象,如果我registeration已經加入,但它顯示的「成功註冊」Android SQL:如何檢查現有用戶?
敬酒我檢查了DDMS文件資源管理器,它不顯示數據庫,但我讀了一些可能不會顯示它,但無論如何我想檢查它是否通過添加檢查現有的用戶名添加。
我想提出一個Android應用程序,和ATM我不知道如果在創建我的數據庫我已經檢查了我的logcat的,我沒有看到任何跡象,如果我registeration已經加入,但它顯示的「成功註冊」Android SQL:如何檢查現有用戶?
敬酒我檢查了DDMS文件資源管理器,它不顯示數據庫,但我讀了一些可能不會顯示它,但無論如何我想檢查它是否通過添加檢查現有的用戶名添加。
假設用戶名是獨一無二的,你需要查詢用戶行你想獲得其用戶名等於用戶名:
public boolean exits(String username){
boolean exists=false;
SQLiteDatabase db = this.getReradableDatabase();
Cursor cursor=db.rawQuery("SELECT * FROM "+help.TABLE_NAME+" WHERE "+help.COLUMN_USERNAME+" ='"+username+"' ;";
if(cursor!=null && cursor.getCount()>0) exists=true;
cursor.close();
db.close();
return exists;
}
好,所以爲了檢查用戶是否不存在並註冊它,你需要做以下到您的onClick方法:
if (!password.equals(confirm)) {
Toast.makeText(getApplicationContext(), "Password does not match", Toast.LENGTH_LONG).show();
return;
}
else if (handler.exists(name)){
Toast.makeText(getApplicationContext(), "User exists", Toast.LENGTH_LONG).show();
return;
}
else {
handler.addUser(name, username, password);
Toast.makeText(getApplicationContext(), "Account Successfully Created ", Toast.LENGTH_LONG).show();
finish();
}
你需要調用rawQuery數據庫與特定的用戶名來獲取行:
public boolean exists(String username){
Cursor c = db.rawQuery(String.format("SELECT %s FROM %s WHERE %s = ? LIMIT 1",
help.COLUMN_NAME, help.TABLE_NAME, help.COLUMN_NAME),
new String[] { username });
return c.moveToFirst();
}
如果存在這樣的名稱的用戶,將返回true
,否則返回false。
迴應您的評論:
...
else if (handler.exists(username)) {
Toast.makeText(getApplicationContext(), "This username already taken", Toast.LENGTH_LONG).show();
return;
} else {
handler.addUser(name, username, password);
Toast.makeText(getApplicationContext(), "Account Successfully Created ", Toast.LENGTH_LONG).show();
finish();
}
public boolean isRecordExist(String value) {
boolean exist = false;
SQLiteDatabase db = this.getReadableDatabase();
String sql = "select * from " + TABLE_NAME;
if (value != null) {
sql = sql + " where <coloumn_name> = '" + value + "'";
}
Cursor c = db.rawQuery(sql, null);
if (c != null) {
if (c.getCount() > 0)
exist = true;
}
c.close();
db.close();
return exist;
}
從原材料查詢,當例如在registertation用戶名文本字段「學生」的用戶類型和填充表格的其餘部分,當用戶點擊克里特帳戶按鈕。我如何在registration.java中實現這個功能,以比較 – user24343 2015-02-23 16:40:14
@LearnFred只需添加另一個「else if」塊。用一個例子更新我的答案。 – Simas 2015-02-23 16:43:05
感謝看原始查詢有一個錯誤,得到這個錯誤: 引起:android.database.sqlite.SQLiteException:接近「1」:語法錯誤(代碼1):,編譯時:SELECT TOP 1名稱來自用戶名稱=? – user24343 2015-02-23 16:47:28