>source

이메일 주소의 중복을 피하기 위한 유효성 검사를 받고 싶습니다. 누군가 이런 종류의 유효성 검사를 도와주세요. 이것은 몇 가지 검증을 거친 간단한 등록입니다. 따라서 여기에서 내 목표는 삽입 된 중복을 피하는 것입니다. 이메일 주소에 대한 데이터.

업데이트된 작업은 다음과 같습니다.

여기 내 가입 code가 있습니다. 오류는 (c)가 기호를 확인할 수 없는 부울 isEmailExist에 있습니다.

내 목표는 기존 이메일 주소가 있을 때 동일한 이메일 추가로 다시 등록할 수 없다는 것입니다.

내 데이터베이스 도우미에서 이메일이 이미 존재하는지 확인하지만 내 등록 활동에서 코딩하는 데 어려움을 겪습니다.

            boolean isEmailExist= helper.insertContact(c);
                if(isEmailExist)
                {
                    //notify user
                   //if the email add is already exist
                }

문제가 보이지 않습니다. 이전에 입력한 이메일을 저장할 데이터베이스가 있는 경우 입력한 이메일이 이미 데이터베이스에 있는 경우 데이터베이스에 문의하기만 하면 됩니다!

Gacci2021-11-15 03:57:47

내 데이터베이스에서 확인하는 방법에 대한 몇 가지 예를 들어 주시겠습니까? 감사 해요.

igy diamzon2021-11-15 03:57:47

SO는 당신에게 예를 제공하지 않을 것입니다. 구현하는 데 문제가 있는 경우 SO가 도움을 드릴 것입니다.

Emil2021-11-15 03:57:47
  • 답변 # 1

    데이터베이스에서 이메일 열을 고유하게 만들어 값이 한 번만 허용되도록 합니다. 오류 경고는 사용자가 사용하려는 이메일이 이미 존재하거나 DB에 등록되어 있으므로 비밀번호를 재설정하도록 요청합니다.

  • 답변 # 2

    테이블에 삽입하기 전에 이메일 주소가 존재하는지 확인할 수 있습니다.

    public boolean insertContact(Contact c)
        {
            boolean isEmailExist= false;
            db= this.getReadableDatabase();
            ContentValues values= new ContentValues();
            String query= "select * from contacts";
            Cursor cursor= db.rawQuery(query, null);
            int count= cursor.getCount();
            values.put(COLUMN_ID, count);
            values.put(COLUMN_NAME , c.getName());
            values.put(COLUMN_UNAME , c.getUName());
            values.put(COLUMN_EMAIL , c.getEmail());
            values.put(COLUMN_PASS, c.getPass());
            if(checkEmailExists(c.getEmail()))
            {
                isEmailExist= true;
            }
            else
            {
                db.insert(TABLE_NAME, null, values);
            }
            db.close();
            return isEmailExist;
        }
    private boolean checkEmailExists(String email) {
            String query= new StringBuilder().append("Select ")
                    .append(email).append(" from ").append(TABLE_XYZ)
                    .toString();
            Cursor cursor= db.rawQuery(query,
                    new String[] { email });
            if (cursor.getCount() > 0) {
                cursor.close();
                return true;
            } else {
                cursor.close();
                return false;
            }
        }
    

    활동에서:

    boolean isEmailExist= helper.insertContact(c);
    if(isEmailExist)
    {
     //notify user
       Toast mail= Toast.makeText(SignUp.this, "Email Already Exist." , Toast.LENGTH_SHORT );
       mail.show();
    }
    else
    {
     //proceed
     Toast password= Toast.makeText(SignUp.this, "Data has been saved." , Toast.LENGTH_SHORT );
     password.show();
     Intent i= new Intent(SignUp.this, MainActivity.class);
     startActivity(i);
    }
    

  • 이전 Android 에뮬레이터에서 localhost를 어떻게 연결합니까? [복제하다]
  • 다음 Linux 기반(공유 호스팅) 웹 서버에 wkhtmltopdf를 설치하는 방법