Я пытаюсь найти, существует ли имя пользователя в базе данных, если оно существует, тогда для переменной в буле будет установлено значение true, если не будет установлено значение false. Кажется, что переменная всегда установлена в true, даже если имя пользователя не существует в таблице. Я проверил данные в таблице и много раз пробовал, но переменная всегда имеет значение true, и сообщение «Username exists» всегда отображается независимо от того, находится ли имя пользователя в базе данных или нет. Это мой код. Что я делаю не так?Поиск, если введенное значение существует в таблице
---- Войти Класс, который определяет, что кнопки и редактировать текстовые поля и увольняет сообщение, когда кнопка нажата Войти -------------
public class Login extends Activity{
Button sqllogin;
EditText sqlusername, sqlpassword;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sqlusername = (EditText) findViewById(R.id.etuname1);
sqlpassword = (EditText) findViewById(R.id.etpass);
sqllogin = (Button) findViewById(R.id.bLogin);
sqllogin.setOnClickListener(new View.OnClickListener() {
//Method that fires a message when the Login button is clicked
public void onClick(View v) {
switch (v.getId()){
case R.id.bLogin:
String username = sqlusername.getText().toString();
String password = sqlpassword.getText().toString();
DBAdapter entry = new DBAdapter(Login.this);
entry.open();
boolean r = entry.findUsername(username);
if(r == true){
Toast.makeText(Login.this, "Username Exists", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(Login.this, "Username does not Exists", Toast.LENGTH_LONG).show();
}
entry.close();
break;
}
}
});
}
}
--- ------ Метод в классе DBAdpater, который проверяет, существует ли в таблице имя пользователя ------------
public boolean findUsername(String username) {
Cursor c = ourDatabase.query(true, DATABASE_TABLE_L, new String[] {
KEY_USERNAME, KEY_PASSWORD}, KEY_USERNAME + "='"
+ username +"'", null, null, null, null, null);
if (c!= null) {
return false;
}
else{
return false;
}
}
или 'return (cursor.getCount() == 0)' для простоты – MAV
, который, я уверен, будет оптимизирован при компиляции, так что если вам легче понять, тогда это не имеет значения –
Спасибо большое всем. Теперь он отлично работает :) –