2014-11-18 1 views
-1

Я работаю sqlite.i успешно создать базу данных и table.and также я могу зарегистрировать некоторые новые user.and также я написал функцию входа в систему с именем пользователя только это часть моего кодаандроид Войти SQLite с именем пользователя и паролем

public String getSinlgeEntry(String username) { 
    Cursor cursor = db.query(usm_Users, null, " UserName=?", 
      new String[] { username }, null, null, null); 
    if (cursor.getCount() < 1) // UserName Not Exist 
    { 
     cursor.close(); 
     return "NOT EXIST"; 
    } 
    cursor.moveToFirst(); 
    String customername = cursor.getString(cursor 
      .getColumnIndex("UserName")); 


    cursor.close(); 
    return customername; 
} 





String username=namefild.getText().toString(); 


      String password=passwordfild.getText().toString(); 

      String storedusername=loginDataBaseAdapter.getSinlgeEntry(username); 

      if(username.equals(storedusername)) 
      { 
       Toast.makeText(MainActivity.this, "Congrats: Login Successfully", Toast.LENGTH_LONG).show(); 
       Intent ii=new Intent(MainActivity.this,Home.class); 
       startActivity(ii); 
      } 
      else 
       if(username.equals("")){ 
        Toast.makeText(MainActivity.this, "Please Enter Your Password", Toast.LENGTH_LONG).show(); 
       } 
       else 
       { 
        Toast.makeText(MainActivity.this, "Password Incorrect", Toast.LENGTH_LONG).show(); 
       } 
     } 

Я могу проверить только имя пользователя для входа. Как я могу написать два параметра, функция witch может проверять имя пользователя и пароль вместе?

public String getSinlgeEntry(String username,String password) { 
    Cursor cursor = db.query(usm_Users, null, " UserName=?", 
      new String[] { username }, null, null, null); 
    if (cursor.getCount() < 1) // UserName Not Exist 
    { 
     cursor.close(); 
     return "NOT EXIST"; 
    } 
    cursor.moveToFirst(); 
    String customername = cursor.getString(cursor 
      .getColumnIndex("UserName")); 


    cursor.close(); 
    return customername; 
} 

я должен изменить что-то мой курсор .if кто-нибудь знает решение, пожалуйста, помогите мне

ответ

0

использование двойной? и отправить два параметра в массив.

как:

Cursor cursor = db.query(usm_Users, null, " UserName=? and Password=?", 
      new String[] { username,password }, null, null, null); 
+0

спасибо я добавил код. Я проверяю на кнопку click.and на данный момент, как я могу написать, если опция? \ – chromelend

+0

Что вы имеете в виду с опцией if? ваш остальной код должен быть в порядке. Я имею в виду, что вы должны использовать мою строку внутри функции getSinlgeEntry – Adem

+0

username.equals (storedusername). username is edit text.gettext.tostring, и ваша функция имеет 2 параметра, а в моей инструкции if я проверял только имя пользователя get text.tostring @Adem – chromelend

0

Вы можете использовать функцию ниже, это более общий

public Boolean check_User_Pin_Number(String username, String password) 
{ 
    SQLiteDatabase sql_Db = this.getReadableDatabase(); 

    // Setting up the cursor which points to the desired table 
    Cursor cursor = sql_Db.rawQuery("SELECT * FROM " + usm_Users, null); 

    Boolean records_Exist = false; 

    // Checking if the table has values other than the header using the cursor  
    if(cursor != null && cursor.getCount() > 0) 
    { 
     // Moving the cursor to the first row in the table 
     cursor.moveToFirst(); 

     do 
     { 
      // Checking if the user name provided by the user exists in the database 
      if(cursor.getString(cursor.getColumnIndex(NAME)).equals(username)) 
      { 
       if(password.equals(cursor.getColumnIndex(PASSWORD)) 
       { 
         records_Exist = true; 
         break; 
       } 
      } 

     }while(cursor.moveToNext()); // Moves to the next row 
    }; 

    // Closing the cursor 
    cursor.close(); 

    // Closing the database 
    sql_Db.close(); 

    return records_Exist; 
} 
+0

thanks.but как я могу использовать этот код? я имею в виду редактирование ext validation.i тоже написал этот код, но не работает – chromelend

+0

Вы можете передать значения редактирования текста в качестве параметров функции (например,). Boolean check = check_User_Pin_Number (username.getText(). toString(), password.getText ().нанизывать()); , Если функция возвращает «истина», то разрешить пользователю действовать дальше - нет. –