2010-08-03 109 views
0

我已完成登錄頁面。我現在的問題是我只能使用創建的第一個帳戶登錄。我發現我還沒有完成我的登錄頁面。缺少的項目是while..loop代碼,以便應用程序將檢查另一個現有用戶,而不是僅查找第一個用戶的匹配項。while循環登錄

if(username.equals(c.getString(1))) 
      { 
       if(password.equals(c.getString(2))) 
       { 
        Context context = getApplicationContext(); 
        int duration = Toast.LENGTH_LONG; 
        Toast toast = Toast.makeText(context, "LOGIN SUCCESS", duration); 
        toast.show(); 

        Intent intent=new Intent(Login.this,Test.class); 
        startActivity(intent); 

       } 

我知道的代碼是一樣的東西,但while (c.moveToNext())我不知道如何使用它在我的if..else語句。

我希望你能幫助我完成這個簡單的任務。謝謝!

+0

什麼樣的對象是C嗎? – 2010-08-03 03:58:24

+0

遊標數據庫 – Dayne 2010-08-03 04:01:36

+0

你需要完整的代碼嗎?我在我以前的問題上有。在那裏查看。 – Dayne 2010-08-03 04:02:05

回答

0

不是循環遍歷所有用戶以找到正確的用戶,而是應該加載與給定用戶名相關聯的用戶並將密碼與他的相匹配。

匹配除應用程序用戶輸入的用戶之外的任何其他用戶是沒有意義的。

編輯: 基於您的評論可能是這樣的:

//make sure the user input is tested against SQL-injections etc. 
Cursor c = db.rawQuery("SELECT username FROM Users WHERE username='?' AND password='?'", 
       new String[] {username, password}); 

     if(c.moveToFirst()) { 
      // at least one row was returned, this should signal success 
      Context context = getApplicationContext(); 
      int duration = Toast.LENGTH_LONG; 
      Toast toast = Toast.makeText(context, "LOGIN SUCCESS", duration); 
      toast.show(); 

      Intent intent=new Intent(Login.this,Test.class); 
      startActivity(intent); 

     } else { 
      // authentication failed, handle error (message etc) 
     } 
+0

嗨stefan 我不知道你的意思。我可以想到t =的唯一方法和基本的東西是在while循環中檢查數據庫中的現有用戶。 如何加載與給定用戶名關聯的用戶?我必須使用while循環來做到這一點,我是正確的,然後我可以匹配密碼。 – Dayne 2010-08-03 06:41:37

+0

而不是從數據庫中查詢所有用戶,您應該使用給定的用戶名進行查詢。 我現在沒有代碼,但在SQL中,它會像: 選擇用戶名,用戶的密碼,其中username =「enteredusername」; 如果結果集爲空,如果結果集被填充,則用戶名不存在,您可以將密碼與結果中的密碼相匹配。 HTH – 2010-08-03 08:51:40

+0

是這樣的嗎? 「Cursor c = db.rawQuery(」SELECT username FROM Users WHERE username ='?'AND password ='?'「,new String [] {username,password}); if(c.moveToFirst()){ //至少有一行被返回,這應該表示成功 } else { //身份驗證失敗 }「 我不知道如何實現此操作。相反,我使用我上面發佈的代碼。 – Dayne 2010-08-03 09:20:40