vendredi 1 juillet 2016

No such column with foreign key

I want to connect to tables in my database with different ID's (CustomerID, OrderID). I use the following code to create my foreign key:

FOREIGN KEY("+ COLUMN_ORDER_ID + ") REFERENCES+TABLE_NAME_CUSTOMER + "(" + COLUMN_CUSTOMER_ID + "));";

I'm not posting the complete source code, because my first table works fine and I think the problem is the foreign key.

I filter my data with this method:

public List<Orders> getOrdersByCustomerID() {
    List<Orders> orderList = new ArrayList<Orders>();
    String query = "select " + COLUMN_ORDER_ID
            + "," + COLUMN_ORDER_NAME
            + "," + COLUMN_SETS
            + "," + COLUMN_REPEATS
            + "," + COLUMN_SECTION
            + " from " + TABLE_NAME_ORDERS
            + " where " + COLUMN_CUSTOMER_ID
            + "=" + COLUMN_ORDER_ID;
    db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(query, null);
    if (cursor.moveToFirst()) {
        do {
            Orders orders = new Orders(cursor.getString(0), cursor.getString(1), cursor.getInt(2), cursor.getInt(3), cursor.getString(4));
            orderList.add(orders);
        } while (cursor.moveToNext());
    }
    db.close();
    return orderList;
}

I get this error message:

06-26 17:11:26.154 10163-10163/com.xxx.xxx.xxx

E/AndroidRuntime: FATAL EXCEPTION: main process: com.xxx.xxx.xxx, PID: 10163

java.lang.RuntimeException: Unable to start activity android.database.sqlite.SQLiteException: no such column: customerId(Sqlite code 1): , while compiling: select orderId,orderName,sets,repeats,section from orders where customerId=orderId,(OS error - 2:No such file or directory)

I think the connection between this two ids is incorrect, or must I commit the id from my customer table? Any tips? As per my understanding, a Customer can have multiple Orders. That's why I use the foreign key; I hope this is correct.

Aucun commentaire:

Enregistrer un commentaire