2013-10-30 172 views
1

我正在購物車模塊上工作。當我按購物車按鈕時,我想將購物車添加到我的數據庫中。場景是我的詳細信息頁中有兩個產品,一個是電子書,另一個是pbook。如果我按其中任何一個我需要創建一個基於親,姓名和自動遞增鍵的行。然後,如果我按下第二個購物車按鈕,我需要再次通過檢查親或名稱值存在更新同一行。以下是我如何創建數據庫。任何人都可以幫助我如何更新該行,如果該值存在於數據庫列中。如何更新android sqlite中列值更改的特定行

//////From activity 

    AddCartHelper databaseHelper=new AddCartHelper(WYWProductDetail.this); 
    databaseHelper.saveCategoryRecord(wyw_pro_id,wyw_book_name); 


    ////Helper Class 


     public class AddCartHelper { 
private static final int DATABASE_VERSION = 2; 
private static final String DATABASE_NAME = "category.db"; 
private static final String TABLE_NAME = "tbcategory"; 
public static final String CATEGORY_COLUMN_ID = "_id"; 
public static final String CATEGORY_COLUMN_PRO = "pro"; 
public static final String CATEGORY_COLUMN_NAME = "name"; 
Category openHelper; 
private SQLiteDatabase database; 
ContentValues contentValues; 
String name_id; 
public AddCartHelper(Context context) { 
    openHelper = new Category(context); 
    database = openHelper.getWritableDatabase(); 

} 

public void saveCategoryRecord(String name, String pro) { 

    contentValues = new ContentValues(); 

    contentValues.put(CATEGORY_COLUMN_PRO, pro); 
    contentValues.put(CATEGORY_COLUMN_NAME, name); 
    if(!name.equals(contentValues.get(CATEGORY_COLUMN_NAME))) { 

    } else { 
     database.insert(TABLE_NAME, null, contentValues); 
     database.close(); 
    } 
    } 

public Cursor getTimeRecordList() { 
    return database.rawQuery("select * from " + TABLE_NAME, null); 
    } 
private class Category extends SQLiteOpenHelper { 
    public Category(Context context) { 
     // TODO Auto-generated constructor stub 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 

      db.execSQL("CREATE TABLE " + TABLE_NAME + "(" 
        + CATEGORY_COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
        + CATEGORY_COLUMN_PRO + " TEXT, " 
        + CATEGORY_COLUMN_NAME + " TEXT)"); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 
     db.execSQL("DROP TABLE IF EXISTS"+ TABLE_NAME); 
     onCreate(db); 
    } 
    } 
} 

回答

3

這將更新所有具有newName的Name = oldName的行。

public int updateAllName(String oldName, String newName) { 
    ContentValues values = new ContentValues(); 
    values.put(CATEGORY_COLUMN_NAME, newName); 
    return Db.update(TABLE_NAME, values, CATEGORY_COLUMN_NAME + " = '" + oldName + "'", null); 
} 

這將更新其專業= oldPro與展示新品推薦網上

public int updateAllPro(String oldPro, String newPro) { 
    ContentValues values = new ContentValues(); 
    values.put(CATEGORY_COLUMN_PRO, newPro); 
    return Db.update(TABLE_NAME, values, CATEGORY_COLUMN_PRO + " = '" + oldPro + "'", null); 
} 
+0

@ ramaral所有行調用此方法.. – user1048958

+0

這是如何改變一個錶行只是一個例子。您需要根據需要調整它,並在必要時調用它。這是您自己嘗試休息的起點。那麼,如果你需要更多的幫助,讓我們知道 – ramaral

+0

@ ramaral謝謝,我知道了...... – user1048958