アプリケーションを作成しています。ユーザーが edittext フィールドにユーザー名を入力するログイン ページがあります。それは、すべてのユーザー名が存在するテーブルのエントリに対してユーザー名をチェックするデータベースヘルパー クラスの関数に渡されます。
データベースヘルパークラスの検証用に作成した関数は次のとおりです。
public String verify_user(String is_user)
{
String verify = " ";
String check = " ";
SQLiteDatabase fg = this.getReadableDatabase();
Cursor c = fg.query(Login_Table, null, null, null, null, null, null);
int iuser = c.getColumnIndex(colUsername);
for(c.moveToFirst() ; !c.isAfterLast();c.moveToNext())
{
verify = c.getString(iuser);
if(is_user == verify)
{
check = "Valid User!";
}
else
{
check = "Not Valid User!";
}
}
return check;
}
is_user は、ユーザーがユーザー名を入力する .xml レイアウト ファイルから来ています... デバッグすると、奇妙な動作が見つかりました。条件では is_user と verify はある時点で同じ値を持ちますが、それ以外は実行されます。ユーザーが有効であることを知っているので、このコードは有効なユーザーではありません! . 親切に私を案内してください。ありがとう!
新しい提案から:
String check = " ";
SQLiteDatabase fg = this.getReadableDatabase();
String[] args = new String[1];
args[0] = is_user;
Cursor c = fg.query(Login_Table, null, colUsername + " = ?", args, null, null, null);
int iuser = c.getColumnIndex(colUsername);
if(is_user.equals(c.getString(iuser)))
{
check = "Valid User!";
}
return check;