2012-08-29 2 views
1

데이터가 있는지 먼저 확인하기 위해 데이터를 데이터베이스에 삽입하는 데 사용되는 Onclick 메서드가 필요합니다. 데이터가 있으면 토스트 메시지가 나타납니다. 어떻게이 일을 할 수 있겠 어. 나의 OnClick은 아래와 같습니다. 나는 사용자 이름과 암호가 있는지 확인하는 것뿐입니다. 있을 경우, 사용자는 건배를 받는다.Db 열 데이터 확인

@Override 
public void onClick (View v) { 

    rUsername = rName.getText().toString(); 
    rPasscode = rCode.getText().toString(); 

    RegDetails regDetails = new RegDetails(); 
    regDetails.setrName(bundleRegName); 
    regDetails.setpCode(bundleRegCode); 
    if(v.getId()==R.id.rtn_button){ 
     finish(); 

    }else if(v.getId()==R.id.reg_button){ 
     insertCredentials(regDetails); 
    } 
} 
    private void insertCredentials(RegDetails regDetails){ 

     LoginDB androidOpenDBHelper = new LoginDB(this); 
     SQLiteDatabase sqliteDB = androidOpenDBHelper.getWritableDatabase(); 

     ContentValues contentValues = new ContentValues(); 
     contentValues.put(LoginDB.COLUMN_NAME_USERNAME, rUsername); 
     contentValues.put(LoginDB.COLUMN_NAME_PASSWORD, rPasscode); 

     long affectedColumnid = sqliteDB.insert(LoginDB.TABLE_NAME_CREDENTIALS, null, contentValues); 

     Toast.makeText(getApplicationContext(), "Credentials Saved! Please login" + affectedColumnid, Toast.LENGTH_SHORT).show(); 
     sqliteDB.close(); 
     finish(); 
    } 

    } 

답변

1

sqliteDB.insert는 성공시 long 값을 반환하고 오류시 -1을 반환합니다. long 값은 db에 새로 삽입 된 행의 행 번호를 나타냅니다. 이 반환 값을 확인하고 그에 따라 토스트를 표시 할 수 있습니다. 데이터베이스를 읽기

여기에 자세한 설명을보고하십시오

, 짧은에서 http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#insert(java.lang.String, java.lang.String, android.content.ContentValues)

, 이런 식으로 코드를 수정,

private void insertCredentials(RegDetails regDetails){ 

    LoginDB androidOpenDBHelper = new LoginDB(this); 
    SQLiteDatabase sqliteDB = androidOpenDBHelper.getWritableDatabase(); 

    ContentValues contentValues = new ContentValues(); 
    contentValues.put(LoginDB.COLUMN_NAME_USERNAME, rUsername); 
    contentValues.put(LoginDB.COLUMN_NAME_PASSWORD, rPasscode); 

    long affectedColumnid = sqliteDB.insert(LoginDB.TABLE_NAME_CREDENTIALS, null, contentValues); 
    if(affectedColumnid != -1){ 
    Toast.makeText(getApplicationContext(), "Credentials Saved! Please login" + affectedColumnid, Toast.LENGTH_SHORT).show(); 
    }else{ 
    // Display error dialog or smthg 
    } 
    sqliteDB.close(); 
    finish(); 
} 
1

. cursor.getCount()> 0이면 데이터가 있다는 뜻입니다.

Cursor cursor = getDbEntries(); 
if(cursor.getCount() > 0){ 
    // data exists 
} 
else{ 
    // data doesnt exist 
}