Android получает всю строку из таблицы и отправляет на сервер - PullRequest
0 голосов
/ 10 мая 2019

Я хочу отправить все данные строк, присутствующие в одной таблице, на сервер. Моя таблица содержит три разных строки данных, но когда я использую курсор, он добавляет только данные последней строки три раза.Итак, как получить все три строки

JSONObject putjsonObjectTrans = new JSONObject();
    try {
        int count = dbHelper.getCountOfRows();

        JSONObject invoiceDetail = new JSONObject();
        SQLiteDatabase sqLiteDatabase=dbHelper.getReadableDatabase();
        String query = "select * from " + TABLE_NAME;
        JSONArray invoiceArray = new JSONArray();
        Cursor cursor = sqLiteDatabase.rawQuery(query, null);
        while (cursor.moveToNext())
        {
    /*    for (int i = 0; i < count; i++)*/
            invoiceDetail.put("ItemId",  cursor.getInt(1));
            invoiceDetail.put("ItemCode", cursor.getString(2));
            invoiceDetail.put("ItemName", cursor.getString(3));
            invoiceDetail.put("ItemQuantity", cursor.getDouble(4));
            invoiceDetail.put("Rate", cursor.getDouble(5));
            invoiceDetail.put("DiscAmount", cursor.getDouble(6));
            invoiceDetail.put("DiscPercentage", cursor.getDouble(7));
            invoiceArray.put(invoiceDetail);
        }
        putjsonObjectTrans.put("acc_no", acccNo);
        putjsonObjectTrans.put("acc_name", accCustomerName);
        putjsonObjectTrans.put("EntryType", getEntryTypeName);
        putjsonObjectTrans.put("EntryDate", gSentryDAte);
        putjsonObjectTrans.put("NetAmount",15.2);
        putjsonObjectTrans.put("division_no", MainActivity.divisionID);
        putjsonObjectTrans.put("invoicedtl", invoiceArray);

    } catch (JSONException e) {
        e.printStackTrace();
    }

Ответы [ 2 ]

1 голос
/ 10 мая 2019

напишите ниже строки внутри цикла while

 JSONObject invoiceDetail = new JSONObject(); 
1 голос
/ 10 мая 2019

Изменить код на

  JSONObject putjsonObjectTrans = new JSONObject();
    try {
        int count = dbHelper.getCountOfRows();


        SQLiteDatabase sqLiteDatabase=dbHelper.getReadableDatabase();
        String query = "select * from " + TABLE_NAME;
        JSONArray invoiceArray = new JSONArray();
        Cursor cursor = sqLiteDatabase.rawQuery(query, null);
        while (cursor.moveToNext())
        {
    /*    for (int i = 0; i < count; i++)*/
JSONObject invoiceDetail = new JSONObject();
            invoiceDetail.put("ItemId",  cursor.getInt(1));
            invoiceDetail.put("ItemCode", cursor.getString(2));
            invoiceDetail.put("ItemName", cursor.getString(3));
            invoiceDetail.put("ItemQuantity", cursor.getDouble(4));
            invoiceDetail.put("Rate", cursor.getDouble(5));
            invoiceDetail.put("DiscAmount", cursor.getDouble(6));
            invoiceDetail.put("DiscPercentage", cursor.getDouble(7));
            invoiceArray.put(invoiceDetail);
        }
        putjsonObjectTrans.put("acc_no", acccNo);
        putjsonObjectTrans.put("acc_name", accCustomerName);
        putjsonObjectTrans.put("EntryType", getEntryTypeName);
        putjsonObjectTrans.put("EntryDate", gSentryDAte);
        putjsonObjectTrans.put("NetAmount",15.2);
        putjsonObjectTrans.put("division_no", MainActivity.divisionID);
        putjsonObjectTrans.put("invoicedtl", invoiceArray);

    } catch (JSONException e) {
        e.printStackTrace();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...