私はアンドロイドアプリを開発しています。アンドロイドアプリでは、ユーザーが登録目的で名前、姓、メールアドレス、パスワードを入力します。この入力プロセスは完璧に機能しています。ユーザーがメールを入力するたびに、入力したメールがデータベースに既に存在するかどうかを確認する必要があります。このためデータベースに挿入するたびにデータフィールド(Eメールなど)の一意性を見つける方法は?
私は私のDBHelperクラスに以下の方法を試みた。ここTABLE_NAMEを
public String Exist(String user) {
String username="";
SQLiteDatabase db = this.getReadableDatabase();
try {
Cursor c = db.query(TABLE_NAME, null, "COL_4" + "=?", new String[]{String.valueOf(user)},null, null, null);
if (c == null) {
return username;
}
else {
c.moveToFirst();
username = c.getString(c.getColumnIndex("COL_4"));
}
}
catch(Exception e){
}
return username;
}
を私のテーブルの名前で、COL_4は、ユーザーの電子メールを含む列であると私は入力した文字列を渡していますこのメソッドのパラメータとしてユーザによって入力された電子メール(電子メール)。
私は次のように私のメインアクティビティクラスからこのメソッドを呼び出しています:
ここString myUser = email.getText().toString();
String storedUser = myDb.Exist(myUser);
//If Username exist
if (myUser.equals(storedUser)) {
Toast.makeText(getApplicationContext(), "Username already exist!", Toast.LENGTH_SHORT).show();
return;
}
私はMYUSER変数に入力されたメールを保存しています。
以前の入力と同じ電子メールであっても、データベースにデータを挿入することができます。つまり、例外が発生し、 ""が返されるたびにエラーが発生します。 Exists
メソッドのエラーは何ですか?
例外を飲み込まないでください: 'catch(Exception e){}'。例外が発生した場合、 '' ''が返され、電子メールがまだ存在しないと思っていることがわかります。 – wero
例外が発生した場合の対処方法 – Kaushal28
そして、なぜ毎回例外が発生するのですか? – Kaushal28