Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 获取数据并将数据添加到现有SQLite数据库_Android_Sqlite_Multi Table - Fatal编程技术网

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谢谢你的帮助