我正在创建一个STOCK IN系统。
我知道如何将新记录插入表中。
但现在,我需要通过检索先前值和使用当前值添加来执行添加。
E.G:
ROWID |股票ID |股票金额|库存总数
01 | A0001 | 20 | 20
02 | B0002 | 50 | 50
03 | A0001 | 40 | 60 <&lt;&lt;&lt; {假设这是新的输入值“40”,当我按下STOCKIN进入数据库时,我需要得到“60”}
手段
20 + 40 = 60
以下是代码:
DBAdapter类
public long stockIn(String indate, String proid, String unit, String total, String rack){
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_STOCK_IN_DATE, indate);
initialValues.put(KEY_PRO_CODE, proid);
initialValues.put(KEY_STOCK_IN_AMT, unit);
initialValues.put(KEY_STOCK_TOTAL, total);
initialValues.put(KEY_STOCK_RACK,rack);
return DB.insert(DATABASE_TRANS_TABLE, null, initialValues);
}
在课堂上搜寻
public void STOCKIN( ) {
stockinBttn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String dateInput, IDInput, unitInput, totalInput, rackInput;
dateInput = dateLbl.getText().toString().trim();
IDInput = proidTxt.getText().toString().trim();
unitInput = prounitTxt.getText().toString().trim();
totalInput = prounitTxt.getText().toString().trim();
rackInput = prorackTxt.getText().toString().trim();
DB.open();
long id = DB.stockIn(userInput, dateInput, IDInput, unitInput, rackInput);
DB.close();
}});
}
非常感谢您的guyz建议和帮助。
此致
答案 0 :(得分:0)
从表格中读取所有先前交易的sum,并将其添加到当前金额:
public long stockIn(String indate, String proid, long unit, String rack) {
long previousTotal = DatabaseUtils.longForQuery(DB,
"SELECT TOTAL("+KEY_STOCK_TOTAL+")"+
" FROM "+DATABASE_TRANS_TABLE+
" WHERE "+KEY_PRO_CODE+" = ?",
new String[] { proid });
ContentValues cv = new ContentValues();
cv.put(KEY_STOCK_IN_DATE, indate);
cv.put(KEY_PRO_CODE, proid);
cv.put(KEY_STOCK_IN_AMT, unit);
cv.put(KEY_STOCK_TOTAL, previousTotal + unit);
cv.put(KEY_STOCK_RACK, rack);
return DB.insert(DATABASE_TRANS_TABLE, null, cv);
}