Android 获取数据并将数据添加到现有SQLite数据库
我试图从一个表中获取数据,然后将其添加到另一个表中。我需要Android 获取数据并将数据添加到现有SQLite数据库,android,sqlite,multi-table,Android,Sqlite,Multi Table,我试图从一个表中获取数据,然后将其添加到另一个表中。我需要键\u CATEGORYID,它从表1自动递增,然后我需要将它添加到表2和表4中。我不能 找出如何做到这一点,因为KEY\u CATEGORYID只有在createBudget方法完成后才会有值,而这发生在addId完成后。这让我完全困惑于该怎么做。非常感谢您的帮助 public SQLiteDatabase createBudget(String bname, String bpay, String bamount,
键\u CATEGORYID
,它从表1自动递增,然后我需要将它添加到表2和表4中。我不能
找出如何做到这一点,因为KEY\u CATEGORYID
只有在createBudget
方法完成后才会有值,而这发生在addId
完成后。这让我完全困惑于该怎么做。非常感谢您的帮助
public SQLiteDatabase createBudget(String bname, String bpay, String bamount,
String bmemo) {
// TODO Auto-generated method stub
ContentValues t1 = new ContentValues();
ContentValues t2 = new ContentValues();
ContentValues t4 = new ContentValues();
t1.put(KEY_NAME, bname);
t1.put(KEY_PAYDAY,bpay);
t2.put(KEY_AMOUNT, bamount);
t2.put(KEY_DATE, date);
t4.put(KEY_MEMO, bmemo);
t4.put(KEY_DATE,date);
ourDatabase.insert(DATABASE_TABLE1, null, t1);
ourDatabase.insert(DATABASE_TABLE2, null, t2);
ourDatabase.insert(DATABASE_TABLE4, null, t4);
addID(bname);
return ourDatabase;
}
private void addID(String bname) throws SQLException {
// TODO Auto-generated method stub
ContentValues num = new ContentValues();
List<String> nums = new ArrayList<String>();
int number = 0;
String[] columns = new String[]{KEY_CATEGORYID};
Cursor c = ourDatabase.query(DATABASE_TABLE1, columns,KEY_CATEGORYID + "=?", new String[] {String.valueOf(bname)}, null, null, null, null);
if(c!= null)
{
if (c.moveToFirst()) {
nums.add(c.getString(0));
number = nums.get(0);
}
num.put(KEY_CATEGORYID, number);
}
ourDatabase.insert(DATABASE_TABLE2, null, num);
ourDatabase.insert(DATABASE_TABLE4, null, num);
}
public SQLiteDatabase createBudget(字符串bname、字符串bpay、字符串bamount、,
字符串(bmemo){
//TODO自动生成的方法存根
ContentValues t1=新的ContentValues();
ContentValues t2=新ContentValues();
ContentValues t4=新的ContentValues();
t1.put(键名称,bname);
t1.put(关键发薪日,bpay);
t2.投入(关键金额,bamount);
t2.投入(关键日期,日期);
t4.投入(关键备忘录,bmemo);
t4.投入(关键日期,日期);
insert(DATABASE_TABLE1,null,t1);
insert(DATABASE_TABLE2,null,t2);
插入(数据库表4,空,t4);
addID(bname);
返回数据库;
}
私有void addID(字符串bname)引发SQLException{
//TODO自动生成的方法存根
ContentValues num=新的ContentValues();
List nums=new ArrayList();
整数=0;
字符串[]列=新字符串[]{KEY_CATEGORYID};
游标c=ourDatabase.query(数据库_TABLE1,列,键_CATEGORYID+“=?”,新字符串[]{String.valueOf(bname)},null,null,null,null);
如果(c!=null)
{
如果(c.moveToFirst()){
nums.add(c.getString(0));
number=nums.get(0);
}
num.put(键类别ID,编号);
}
insert(DATABASE_TABLE2,null,num);
insert(DATABASE_TABLE4,null,num);
}
insert方法返回自动生成的键值:
long key=ourDB.insert(表1,null,t1);
t2.put(键\类别ID,键);
ourDB.insert(表2,空,t2);
@YaqubAhmad谢谢你的帮助