我在Android上的数据库遇到了一些问题。
有两张桌子。第一个TABLE_LISTELEMENT
处理一个元素需要的所有数据。
public static final String SQL_CREATE_LE =
"create table " + TABLE_LISTELEMENT + "(" +
COL_LEID + " integer primary key autoincrement, " +
COL_PRODUCT + " text, " +
COL_LABEL + " text, " +
COL_SERIAL + " text, " +
COL_MAC + " text, " +
COL_DAAID + " text, " +
COL_BILL + " text, " +
COL_FK_RID + " REFERENCES room(rid)" + ")";
我添加了COL_FK_RID
外键来引用我的第二个表(TABLE_ROOMS
)
public static final String SQL_CREATE_R =
"create table " + TABLE_ROOM + "(" +
COL_RID + " integer primary key autoincrement, " +
COL_RNAME + " text" + ")";
现在我已经有了这两张桌子,但我不知道如何将FK添加到我的第一张桌子。
首先,我创建TABLE_LISTELEMENTS
的元素并在ListView
中显示它们。现在我想要获取所有ListView
条目并添加一个房间。
因此,我选择了TABLE_ELEMENTS
的所有条目:
public boolean insertRoomNr(String room){
SQLiteDatabase db = this.getWritableDatabase();
Cursor dbCursor;
ContentValues contentValues = new ContentValues();
contentValues.put("roomname", room);
db.insert(TABLE_ROOM, null, contentValues);
String RaumId ="";
RaumId = db.rawQuery("SELECT rid FROM room WHERE "+ COL_RNAME + " = ?",new String[]{"null"}).toString();
ContentValues contentValues2 = new ContentValues();
contentValues.put("fkrid", RaumId);
db.update(TABLE_LISTELEMENT, contentValues2 , " WHERE fkrid IS null", null);
return true;
}
但是我现在怎样才能为TABLE_ROOMS
添加一个房间,并将他与我选择的所有参赛作品联系起来。 (我有一个EditText
和一个Button
我用来输入房间号码。)
我希望你能理解我的问题。
答案 0 :(得分:1)
您还可以使用以下内容:
public boolean setData(String data1, String data2) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("data_example1", data1);
contentValues.put("data_example2", data2);
db.insert(TABLE_EXAMPLE, null, contentValues);
return true;
}
答案 1 :(得分:0)
我做到了。现在我使用2种方法。第一个插入新的roomName,第二个更新ID。
public boolean insertRoomNr(String room){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("roomname", room);
db.insert(TABLE_ROOM, null, contentValues);
Log.d("raumname", room);
return true;
}
public boolean insertRoomId(String roomFromEditText){
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL("UPDATE listelement SET fkrid = (SELECT rid FROM room WHERE roomname = '" + roomFromEditText + "')");
return true;
}