是否可以一次添加两个表? 当我单击按钮时,代码将运行
try {
SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(Donation_Page.this);
SharedPreferences.Editor editor = app_preferences.edit();
int i = app_preferences.getInt("key", 0);
i = ++i;
txn.setTxnNo(i + "");
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name", txn.getName());
//cv.put("TxnNo", txn.getTxnNo());
cv.put("TxnNo", String.format("%04d", i));
cv.put("TxnDate", txn.getTxnDate());
cv.put("Amount", txn.getAmount().toPlainString());
cv.put("Description1", txn.getDescription1());
cv.put("Description2", txn.getDescription2());
editor.putInt("key", i).commit();
db.insert("Donation_Details", null, cv);
db.close();
Toast.makeText(Donation_Page.this, "Add successfully", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
以上代码将存储在一个表中,该表为“ Donation_Details”。但是我还有一个表是“ Information”,其中一列是“ Last txn no”。我也想cv.put
。但这是在“信息”表中,而不是在“ Donation_Details”中。 db.insert("Donation_Details", null, cv);
只能写一次。那么,如何在其中添加一个表呢?有可能吗?
这是我的更新
在这行代码之后。显示错误getLastTxnNo() in SettingModel cannot be applied to java. lang. String
try {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name", txn.getName());
cv.put("TxnDate", txn.getTxnDate());
cv.put("Amount", txn.getAmount().toPlainString());
cv.put("Description1", txn.getDescription1());
cv.put("Description2", txn.getDescription2());
db.insert("Donation_Details", null, cv);
db.close();
SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(Donation_Page.this);
SharedPreferences.Editor editor = app_preferences.edit();
int i = app_preferences.getInt("key", 0);
i = ++i;
txnSec.getLastTxnNo(i + "");
SQLiteDatabase dbSec = dbHelper.getWritableDatabase();
ContentValues cvSec = new ContentValues();
cvSec.put("TxnNo", String.format("%04d", i));
editor.putInt("key", i).commit();
dbSec.insert("Information", null, cvSec);
dbSec.close();
Toast.makeText(Donation_Page.this, "Add successfully", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
错误显示在“ txnSec.getLastTxnNo(i + "");
”行,但是无论是String还是Int也可以应用,为什么?
答案 0 :(得分:1)
首先,检查Donation_Details
表和Information
表之间的关系。
其次,“那么,如何在其中添加一个表呢?”不清楚。
我的建议,请如下创建另一个新的SQLiteDatabase
对象,然后尝试其余的操作。
SQLiteDatabase dbNew = dbHelper.getWritableDatabase();
ContentValues cvNew = new ContentValues();
cvNew.put("Last txn no", txn.getTxnNo());
dbNew.insert("Information", null, cvNew);
dbNew.close();
请根据您的要求更新cvNew.put("Last txn no", txn.getTxnNo());
这一行。
谢谢。
答案 1 :(得分:0)
您必须打两次电话,但是如果您希望同时更新表,请将它们放入事务中。