Rex
Rex

Reputation: 57

Android get all row from table and sent to server

I want to send all the row data present in one table to server, My table having three different data rows, But when I am using Cursor it add only last row data three time. So how to get all three rows

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

Upvotes: 0

Views: 80

Answers (2)

Dharmender Manral
Dharmender Manral

Reputation: 1520

write below line inside while loop

 JSONObject invoiceDetail = new JSONObject(); 

Upvotes: 1

Athira
Athira

Reputation: 1213

Change code to this

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

Upvotes: 0

Related Questions