0

名前、情報を保持し、データベースに保存される各オブジェクトの「_id」も提供するデータベースを作成しました。

今、次の関数を使用して、新しく追加されたオブジェクトが取得しているIDを最後に取得したい-次のコードを試しました-しかし、それは正しい方法ではないと確信しています

public long insertAuto(Student student){
        SQLiteDatabase db = dbOpen.getWritableDatabase();

        ContentValues vals = new ContentValues();
        vals.put(Constants.STUDENT_NAME, student.getName());
        vals.put(Constants.STUDENT_INFO, movie.getInfo());

        db.insert(Constants.TABLE_NAME_STUDENTS, null, vals);

            //this is where i thinks is my mistake! 
        long id = student.getId();

        db.close();

        return  id;
    }

あらゆる種類の助けに感謝します

4

5 に答える 5

2

メソッドの戻り値を使用しますSQLiteDatabase.insert()

ドキュメントに記載されているように、このメソッドは戻ります

the row ID of the newly inserted row, or -1 if an error occurred 
于 2013-11-04T08:27:34.973 に答える
0

データベースに挿入するクエリを実行すると、現在挿入されている行の行 ID が long 値として返されます。

long id = db.insert(Constants.TABLE_NAME_STUDENTS, null, vals);
return id;

この行 ID は一意であり、以降のクエリで使用できます。

于 2013-11-04T08:45:34.750 に答える