2010-07-01 165 views
0

我設法創建了函數的邏輯,但我不知道如何將它與數據庫匹配。我只知道如何做硬編碼的方式。RE:登錄頁面。如何匹配數據庫中的用戶名和密碼以允許用戶登錄?

以下是我如何做到的。任何人都可以幫助我的'客人'部分,我相信一個SQL語句應該插入那裏我是嗎?我知道我錯過了一些東西。在匹配用戶名和密碼之前,我應該首先檢查用戶是否存在於數據庫中,然後檢查密碼是否與用戶名匹配。

所以總而言之,我需要'if else'語句的幫助。

package one.two; 

import android.app.Activity; 
import android.content.Intent; 
import android.database.Cursor; 

import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.GridView; 
import android.widget.ListView; 
import android.widget.TextView; 



public class Login extends Activity implements OnClickListener{ 

/** Called when the activity is first created. */ 

    private EditText etUsername; 
    private EditText etPassword; 
    private Button btnLogin; 
    //private Button btnRegister; 
    private TextView lblResult; 

    @Override 

    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     setContentView(R.layout.main); 
    // Get the EditText and Button References 
     etUsername = (EditText)findViewById(R.id.usernametxt); 
     etPassword = (EditText)findViewById(R.id.passwordtxt); 
     btnLogin = (Button)findViewById(R.id.btnLogin); 
     //btnRegister = (Button)findViewById(R.id.btnRegister); 
     lblResult = (TextView)findViewById(R.id.msglbl); 


     Button btnArrival = (Button) findViewById(R.id.btnRegister); 
     btnArrival.setOnClickListener(this); 


    // Set Click Listener 
    btnLogin.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // Check Login 
     String username = etUsername.getText().toString(); 
     String password = etPassword.getText().toString(); 

     if(username.equals("guest") && password.equals("guest")){ 
      lblResult.setText("Login successful."); 
     } else { 
      lblResult.setText("Login failed. Username and/or password doesn't match."); 
     } 
    } 
}); 



    } 

    public void onClick(View v) 
    { 
      Intent intent = new Intent(this, DatabaseActivity.class); 
      startActivity(intent); 
} 

} 

回答

1

之前,我相匹配的用戶名和密碼,我應該檢查用戶是否存在於數據庫中,然後再檢查是否與用戶名的密碼相匹配。

否除非在您的要求中您不需要創建兩個SQL。你最好做類似的事情。 select count(*) from tableName where userNameField = username and passwordField = password並檢查的行數是>比0登錄是好的,否則用戶名或密碼無效

+0

如此這般: 「如果(SELECT COUNT(*)FROM表名,其中userNameField =用戶名和passwordField =密碼){ lblResult.setText( 「登錄成功」);} 其他{ lblResult.setText( 「登錄失敗的用戶名和/或密碼不匹配。」);} 」 ? – Dayne 2010-07-01 07:35:43

+0

你需要喲執行此選擇語句到數據庫並檢查返回的輸出。檢查你的數據庫連接API。它可能位於http://developer.android.com/reference/java/sql/Connection.html。 – 2010-07-01 08:07:59

相關問題