복붙노트

[SQL] 안드로이드 SQLite는 것은 특정 행을 업데이트하는 방법

SQL

안드로이드 SQLite는 것은 특정 행을 업데이트하는 방법

지금은 잠시 동안 특정 행을 업데이트하려고했는데,이 작업을 수행하는 두 가지 방법이 있다는 것을 보인다. 내가 읽고 해봤 바로는, 당신은 단지를 사용할 수 있습니다 :

에는 ExecSQL (문자열 SQL) 방법

아니면 그:

업데이트 (문자열 테이블 ContentValues ​​값 문자열 whereClause 문자열 [] whereArgs) 방법.

(제가 안드로이드에 새로운 SQL에 아주 새로운 오전으로이 잘못된 경우 알려 주시기 바랍니다.)

그래서 내 실제 코드를 얻을 수 있습니다.

myDB.update(TableName, "(Field1, Field2, Field3)" + " VALUES ('Bob', 19, 'Male')", "where _id = 1", null);

나는 이러한 목표를 달성하기 위해 노력하고 있습니다 :

기본 키 (_id)는 1과 동일 요금 필드 1, 필드 2와 입력란 3.

Eclipse는 나에게 단어 "업데이트"아래에 빨간색 줄 권리를 부여하고 나에게이 설명을 제공합니다 :

내가 제대로 ContentValues를 할당하고 있지 않다 같은데요. 올바른 방향으로 누구 포인트 나 수 있습니까?

해결법

  1. ==============================

    1.먼저 ContentValues ​​객체를 만들 :

    먼저 ContentValues ​​객체를 만들 :

    ContentValues cv = new ContentValues();
    cv.put("Field1","Bob"); //These Fields should be your String values of actual column names
    cv.put("Field2","19");
    cv.put("Field2","Male");
    

    그런 다음 업데이트 방법을 사용, 지금은 작동합니다 :

    myDB.update(TableName, cv, "_id="+id, null);
    
  2. ==============================

    2.간단한 방법 :

    간단한 방법 :

    String strSQL = "UPDATE myTable SET Column1 = someValue WHERE columnId = "+ someValue;
    
    myDataBase.execSQL(strSQL);
    
  3. ==============================

    3.처음에는 ContentValues ​​객체를 생성 :

    처음에는 ContentValues ​​객체를 생성 :

    ContentValues cv = new ContentValues();
    cv.put("Field1","Bob");
    cv.put("Field2","19");
    

    그런 다음 업데이트 방법을 사용합니다. 참고 세 번째 인수는 where 절입니다. 은 "?" 자리 표시 자입니다. 그것은 네 번째 인수로 대체됩니다 (ID)

    myDB.update(MY_TABLE_NAME, cv, "_id = ?", new String[]{id});
    

    이것은 특정 행을 업데이트 할 수있는 깨끗한 솔루션입니다.

  4. ==============================

    4.이 코드는 예를 수정해야합니다 :

    이 코드는 예를 수정해야합니다 :

     ContentValues data=new ContentValues();
     data.put("Field1","bob");
     data.put("Field2",19);
     data.put("Field3","male");
     DB.update(Tablename, data, "_id=" + id, null);
    
  5. ==============================

    5.당신이 시도 할 수 있습니다 ...

    당신이 시도 할 수 있습니다 ...

    db.execSQL("UPDATE DB_TABLE SET YOUR_COLUMN='newValue' WHERE id=6 ");
    
  6. ==============================

    6.이 당신을 도울 바랍니다 :

    이 당신을 도울 바랍니다 :

    public boolean updatedetails(long rowId, String address)
      {
         SQLiteDatabase mDb= this.getWritableDatabase();
       ContentValues args = new ContentValues();
       args.put(KEY_ROWID, rowId);          
       args.put(KEY_ADDRESS, address);
      return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null)>0;   
     }
    
  7. ==============================

    7.당신은 SQLite는이 하나의 업데이트 방법을 시도

    당신은 SQLite는이 하나의 업데이트 방법을 시도

    int id;
    ContentValues con = new ContentValues();
    con.put(TITLE, title);
    con.put(AREA, area);
    con.put(DESCR, desc);
    con.put(TAG, tag);
    myDataBase.update(TABLE, con, KEY_ID + "=" + id,null);
    
  8. ==============================

    8.당신의 DB에서이 코드를 사용       `

    당신의 DB에서이 코드를 사용       `

    public boolean updatedetails(long rowId,String name, String address)
          {
           ContentValues args = new ContentValues();
           args.put(KEY_ROWID, rowId);          
           args.put(KEY_NAME, name);
           args.put(KEY_ADDRESS, address);
           int i =  mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null);
        return i > 0;
         }
    

    당신의 sample.java 사용이 코드에서 업데이트

      //DB.open();
    
            try{
                  //capture the data from UI
                  String name = ((EditText)findViewById(R.id.name)).getText().toString().trim();
                  String address =(EditText)findViewById(R.id.address)).getText().toString().trim();
    
                  //open Db
                  pdb.open();
    
                  //Save into DBS
                  pdb.updatedetails(RowId, name, address);
                  Toast.makeText(this, "Modified Successfully", Toast.LENGTH_SHORT).show();
                  pdb.close();
                  startActivity(new Intent(this, sample.class));
                  finish();
            }catch (Exception e) {
                Log.e(TAG_AVV, "errorrrrr !!");
                e.printStackTrace();
            }
        pdb.close();
    
  9. ==============================

    9.이 같은 시도 할 수 있습니다 :

    이 같은 시도 할 수 있습니다 :

    ContentValues values=new ContentValues();
    values.put("name","aaa");
    values.put("publisher","ppp");
    values.put("price","111");
    
    int id=sqdb.update("table_name",values,"bookid='5' and booktype='comic'",null);
    
  10. ==============================

    10.당신의 sqlite가 행이 고유 ID 또는 다른 equivatent이있는 경우, 당신은이 같은 곳에 절을 사용할 수 있습니다

    당신의 sqlite가 행이 고유 ID 또는 다른 equivatent이있는 경우, 당신은이 같은 곳에 절을 사용할 수 있습니다

    update .... where id = {here is your unique row id}
    
  11. ==============================

    11.업데이트의 필요성과 같이 최선을 다하고하려면 변경 setTransactionSuccessfull를 호출합니다 :

    업데이트의 필요성과 같이 최선을 다하고하려면 변경 setTransactionSuccessfull를 호출합니다 :

    db.beginTransaction();
    try {
        db.update(...) 
        db.setTransactionSuccessfull(); // changes get rolled back if this not called
    } finally {
       db.endTransaction(); // commit or rollback
    }
    
  12. ==============================

    12.// 다음은 업데이트에 대한 몇 가지 간단한 예제 코드입니다

    // 다음은 업데이트에 대한 몇 가지 간단한 예제 코드입니다

    // 먼저이 선언

    private DatabaseAppHelper dbhelper;
    private SQLiteDatabase db;
    

    // 다음 초기화

    dbhelper=new DatabaseAppHelper(this);
            db=dbhelper.getWritableDatabase();
    

    // 그 갱신 코드

     ContentValues values= new ContentValues();
                    values.put(DatabaseAppHelper.KEY_PEDNAME, ped_name);
                    values.put(DatabaseAppHelper.KEY_PEDPHONE, ped_phone);
                    values.put(DatabaseAppHelper.KEY_PEDLOCATION, ped_location);
                    values.put(DatabaseAppHelper.KEY_PEDEMAIL, ped_emailid);
                    db.update(DatabaseAppHelper.TABLE_NAME, values,  DatabaseAppHelper.KEY_ID + "=" + ?, null);
    

    대신에 '물음표'의 아이디를 넣어 // 나의 공유 환경 설정에서 기능입니다.

  13. ==============================

    13.

     public void updateRecord(ContactModel contact) {
        database = this.getReadableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COLUMN_FIRST_NAME, contact.getFirstName());
        contentValues.put(COLUMN_LAST_NAME, contact.getLastName());
        contentValues.put(COLUMN_NUMBER,contact.getNumber());
        contentValues.put(COLUMN_BALANCE,contact.getBalance());
        database.update(TABLE_NAME, contentValues, COLUMN_ID + " = ?", new String[]{contact.getID()});
        database.close();
    }
    
  14. ==============================

    14.다만이 방법을 시도

    다만이 방법을 시도

      String strFilter = "_id=" + Id;
      ContentValues args = new ContentValues();
      args.put(KEY_TITLE, title);
      myDB.update("titles", args, strFilter, null);**
    
  15. ==============================

    15.SQLite는의 업데이트 방법 :

    SQLite는의 업데이트 방법 :

    public void updateMethod(String name, String updatename){
        String query="update students set email = ? where name = ?";
        String[] selections={updatename, name};
        Cursor cursor=db.rawQuery(query, selections);
    }
    
  16. ==============================

    16.

    public long fillDataTempo(String table){
        String[] table = new String[1];
        tabela[0] = table; 
        ContentValues args = new ContentValues();
        args.put(DBOpenHelper.DATA_HORA, new Date().toString());
        args.put(DBOpenHelper.NOME_TABELA, nome_tabela);
        return db.update(DATABASE_TABLE, args, STRING + " LIKE ?" ,tabela);
    }
    
  17. ==============================

    17.단지 ROWID를주고 ContentValues에서 갱신 될 것입니다 데이터를 입력합니다.

    단지 ROWID를주고 ContentValues에서 갱신 될 것입니다 데이터를 입력합니다.

    공공 무효 updateStatus (문자열 ID, INT 상태) {

    DB의 SQLiteDatabase this.getWritableDatabase = ();

    ContentValues ​​데이터 = 새로운 ContentValues ​​();

    data.put ( "상태", 상태);

    db.update (TABLENAME 데이터 "COLUMNNAME"+ "="+ ID, NULL);

    }

  18. from https://stackoverflow.com/questions/9798473/sqlite-in-android-how-to-update-a-specific-row by cc-by-sa and MIT license