0

私は周りを検索しましたが、私の問題を解決できる答えが見つからないようです。ユーザーがログインした場合、データベースで確認し、ユーザー名とパスワードがデータベースで一致する場合は次のページに移動する必要があることを確認しようとしています。以下の次のコードを使用すると、ユーザー名とパスワードが一致しない場合でもログインできるため(ユーザー名が間違っているのにパスワードが正しい場合)、どこで間違ったのかわかりませんが、パスワードが間違っている場合(ユーザー名が正しいか間違っているかは関係ありません)、私が設定したエラーメッセージが表示されます。パスワードだけが読み取られ、ユーザー名はすでに上書きされているためですか?AndroidとJavaは初めてなので、助けてください。どうもありがとう!

$   public void run()
                {
                    button.setOnClickListener(new OnClickListener() {
                        public void onClick(View v) {       

                            Query query = new Query();
                            query.select("x.username, x.password");
                            query.from("AccountLogin", "x");
                            AttributeTest ts = new AttributeTest();
                            ts.setOperator(AttributeTest.EQUAL);
                            ts.setAttribute("username");
                            ts.setValue(un.getText());
                            ts.setAttribute("password");
                            ts.setValue(pw.getText());
                            query.setTestCriteria(ts);



                            QueryResultSet qs = FinalDB.executeQuery(query);
                            if (!qs.isEmpty()) {

                                Intent goToNextActivity = new Intent(FinalActivity.this,    HomePage.class);
                                startActivity(goToNextActivity);
                            } else {
                                error.setText("Login failed. Username and/or password doesn't match.");
                            }
                        }
                    });
                }
            });

        }


    }).start();
}

}

4

1 に答える 1

0

これを試して。このような場所の条件または場所のクエリを確認してください。

このコードはパスワードの確認のみです。

 Query query = new Query();
            query.select("x.username, x.password");
                                query.from("AccountLogin", "x");
            AttributeTest ts2 = new AttributeTest();
            ts2.setAttribute("x.password");

            ObjectList v = new ObjectList();
            v.add("password"); // use orignal password

            ts2.setValue(v);
            ts2.setOperator(AttributeTest.IN);
            query.where(ts2);

            query.setTake(take);
            query.setSkip(skip);

            lowIndex = skip;
            highIndex = lowIndex;

            if (!qs.isEmpty()) {

           Intent goToNextActivity = new Intent(FinalActivity.this,    HomePage.class);
           startActivity(goToNextActivity);
           } else {
           error.setText("Login failed. Username and/or password doesn't match.");
            }
于 2012-09-26T12:22:28.790 に答える