1

テーブルからデータを取得して、別のテーブルに追加しようとしています。KEY_CATEGORYIDテーブル1からどの自動インクリメントが必要で、それをテーブル2と4に追加する必要があります。メソッドが終了した後にのみ値を持つため、これを行う方法がわかりません。これは終了後に発生しKEY_CATEGORYIDます。何をすべきか完全に困惑していますが、どんな助けも大歓迎です。createBudgetaddId

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);
            }
4

1 に答える 1

0

このinsertメソッドは、自動生成されたキー値を返します。

long key = ourDB.insert(TABLE1, null, t1);
t2.put(KEY_CATEGORYID, key);
ourDB.insert(TABLE2, null, t2);
于 2012-11-19T17:38:09.457 に答える