2014-07-04 2 views
0

내 안드로이드 응용 프로그램에서 데이터를 데이터베이스에 저장해야합니다. 값은 사용자 이름 및 DOB 세부 정보입니다. 그래서 세부 정보를 저장하기 전에 데이터가 존재하는지 여부를 확인해야합니다. 이름에서 성, 성, 그리고 dob arte가 동일한 경우 아무도 데이터를 삽입 할 필요가 없습니다. 나는 누군가가 도와주십시오. 알고 있다면 아래 코드를 제공하고 있습니다.Android Sqlite 삽입하지 않을 경우 삽입

    EditText et1 = (EditText) findViewById (R.id.editText1); 
        EditText et2 = (EditText) findViewById (R.id.editText2); 
        EditText et3 = (EditText) findViewById (R.id.editText3); 
        EditText et4 = (EditText) findViewById (R.id.editText7); 
        EditText et5 = (EditText) findViewById (R.id.editText8); 
        EditText et6 = (EditText) findViewById (R.id.editText9); 
        EditText et7 = (EditText) findViewById (R.id.editText10); 
        EditText et8 = (EditText) findViewById (R.id.editText11); 




           String fname = et1.getText().toString(); 

           String mname = et2.getText().toString(); 

           String lname = et3.getText().toString(); 

           String bday = et4.getText().toString(); 

           String bmonth = et5.getText().toString(); 

           String byear = et6.getText().toString(); 

           String mno = et7.getText().toString(); 

           String pem = et8.getText().toString(); 

db.execSQL("INSERT INTO Data2 VALUES('"+fname+"', '"+mname+"','"+lname+"','"+bday+"', '"+bmonth+"','"+byear+"', '"+mno+"', '"+pem+"');"); 

            Toast.makeText(NumEntry.this, "Your details are successfully saved.", Toast.LENGTH_LONG).show(); 
+0

http://stackoverflow.com/questions/2779823/sqlite-query-to-insert-a-record-if-not-exists – JDJ

답변

1

다음과 같은 방법을 사용할 수 있습니다 .. 행의 경우

Cursor cursor = db.rawQuery("select id from tblUniqueNumber WHERE fname = " + fname + " &&  lname =" + lname + " && DOB = " + DOB, null); 

if(cursor.moveToFirst()) 
{ 

} else { 
    // insert 
} 
2

확인이 이미 데이터베이스에 존재 여부 및이 업데이트에 따라 또는 데이터 삽입 :

public Long saveUser(Some values) { 
      long rowId; 
      String sql = "SELECT * FROM Data2 WHERE COLUMN_1 = ? AND COLUMN_2 = ?"; 
      Cursor cursor = getSqLiteDatabase().rawQuery(sql, new String[]{"column_value_1" ,"column_value_2"}); 
      if (cursor == null || !cursor.moveToFirst()) { 
       //Insert new 
       rowId = getSqLiteDatabase().insert(Data2, null, yourCV); 
      } else { 
       //Update 
       String clause = "COLUMN_1 = ? AND COLUMN_2 = ?"; 
       String args[] = {"column_value_1" ,"column_value_2"}; 
       rowId = getSqLiteDatabase().update(User.DB_KEYS.TABLE.toString(), UserSqlStorage.saveUserCV(user), clause, args); 
      } 
      closeCursor(cursor); 
      return rowId; 
     } 
0

I을 항상 saveOrUpdate() 메서드를 만들어 업데이트하려고하지만 영향을받는 행이없는 경우 저장합니다 (데이터가 새로운 것을 의미 함)

관련 문제