Курсор возвращает только одну строку sqlite android - PullRequest
0 голосов
/ 26 мая 2020

Я действительно так устал искать ответ на этот вопрос. У меня есть таблица с некоторыми данными. Теперь у меня есть действие, в котором я делаю там 2 вещи.

  1. Сначала я получаю все строки в таблице и показываю их в виде списка

Теперь отображаются элементы в списке работает отлично.

Когда я нажимаю кнопку, я сохраняю данные на внешний sql db

Теперь возникает проблема: когда я сохраняю его, внешний db показывает только одну строку того, что я сохранили, я подумал, что это может быть запрос к базе данных, который я написал. но это было не потому, что я пытался распечатать строки, прежде чем сохранить их, а вышла только одна строка. Любая помощь?

Сохранение в виде списка:

  private void populateListView() {

        while (data.moveToNext()) {
            listData.add(new myDataClass(data.getString(data.getColumnIndex("Name")), data.getString(data.getColumnIndex("Amount")), data.getString(data.getColumnIndex("Price"))));
        }

        total.setText(mDatabaseHelper.getPriceSumAR());


        custom = new CustomAdapter(listData, this);

        mListview.setAdapter(custom);

        //custom.notifyDataSetChanged();


    }

Сохранение во внешнюю базу данных:

   public class DoLogin extends AsyncTask<String, String, String> {

        String message = "";
        Boolean isSuccess = false;


        @Override
        protected void onPreExecute() {

            progressDialog.showProgress(ListitemsboughtAR.this, "Loading..."
                    ,true);
        }


        @Override
        protected String doInBackground(String... params) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {


                    try {
                        Connection con = connectionClass.CONN();
                        if (con == null) {
                            message = "Error in connection";
                        } else {
                            System.out.println("background");
                            Cursor cursor2 = mDatabaseHelper.GetPathAR();
                            System.out.println(cursor2);
                            String id2 = getIntent().getStringExtra("storeid");
                            Statement stmt1 = null;

                            String nameid;
                            String getname = getIntent().getStringExtra("nameofcus");
                            if(getname != null)
                            {
                                System.out.println(getname
                                );
                                String querygetlastnum = "SELECT CASE WHEN EXISTS(SELECT TOP 1 * FROM OrderMainData ORDER BY OrderID DESC) THEN 0 ELSE 1 END AS IsEmpty;";
                                Statement statement = con.createStatement();
                                ResultSet resultSet = statement.executeQuery(querygetlastnum);
                                while (resultSet.next()) {
                                    int addone = 1;
                                    int all = 0;
                                    String oderid;
                                    if (resultSet.getInt("IsEmpty") == 1){
                                        oderid = String.valueOf(0);
                                        all = Integer.valueOf(oderid) + Integer.valueOf(addone);
                                    }else {
                                        System.out.println("IsEmpty");
                                        String querr = "SELECT * FROM OrderMainData WHERE OrderID=(SELECT max(OrderID) FROM OrderMainData);";
                                        Statement statement12 = con.createStatement();
                                        ResultSet sss = statement12.executeQuery(querr);
                                        while (sss.next()) {
                                            String res = sss.getString("OrderID");
                                            System.out.println("Res is : "+res);
                                            all = Integer.valueOf(res) + 1;
                                        }
                                    }




                                        String querr = "SELECT CustomerID FROM CustomerData WHERE CustomerMobile = '" + getname + "'";

                                        Statement statement1 = con.createStatement();
                                        ResultSet ss = statement1.executeQuery(querr);
                                        while (ss.next()) {
                                            DatabaseHelper databaseHelper = new DatabaseHelper(ListitemsboughtAR.this);
                                            data = databaseHelper.getDataOfTableAR();

                                                while (data.moveToNext()){
                                                    while (cursor2.moveToNext()){
                                                        String timeStamp = new SimpleDateFormat("MM/dd/yyyy").format(new Date());
                                                        // System.out.println("DDDDDDAAAAAATTTTTTAAAAA" + data.getString(data.getColumnIndex("ID") + "','" + data.getString(data.getColumnIndex("Amount")) + "','" + data.getString(data.getColumnIndex("Price")) + "','" + mDatabaseHelper.getPriceSumAR()));
                                                        nameid = ss.getString("CustomerID");
                                                        Bitmap bitmap = BitmapFactory.decodeFile(cursor2.getString(0));
                                                        ByteArrayOutputStream blob = new ByteArrayOutputStream();
                                                        bitmap.compress(Bitmap.CompressFormat.JPEG, 100 /* Ignored for PNGs */, blob);
                                                        String qauqau = "";
                                                        byte[] bitmapdata = blob.toByteArray();
                                                        if (cursor2.getCount() <= 0) {
                                                            qauqau = " ";
                                                        }else {
                                                            qauqau = "INSERT INTO OrderAttachment (OrderSerial,AttachImage) values('" + id2 + "-" + nameid + "-" + all + "','" + bitmapdata + "');";
                                                        }
                                                        System.out.println(bitmapdata);
                                                        String queryinsertimage = "INSERT INTO OrderMainData values('" + id2 + "','" + nameid + "','" + getname + "','" + all + "','" + id2 + "-" + nameid + "-" + all + "','" + timeStamp + "','" + data.getString(data.getColumnIndex("Amount")) + "','" + databaseHelper.getPriceSumAR() + "','0','','0','','0','','0','','0','');" +
                                                                qauqau +
                                                                "INSERT INTO OrderDetailData values('" + id2 + "-" + nameid + "-" + all + "','" + data.getString(data.getColumnIndex("ID")) + "','" + data.getString(data.getColumnIndex("Amount")) + "','" + data.getString(data.getColumnIndex("Price")) + "','" + databaseHelper.getPriceSumAR() + "');" +
                                                                "WITH CTE AS(" +
                                                                "SELECT StoreID,CustomerID,CustomerName,OrderID,OrderSerial,OrderDate,OrderItemCount,OrderValue,OrderReceived,ReceiveDate,OrderReady,ReadyDate,OrderShipped,ShippingDate,OrderDelivered,DeliveryDate,OrderRejected,RejectDate," +
                                                                "RN = ROW_NUMBER()OVER(PARTITION BY OrderID ORDER BY OrderID)" +
                                                                "FROM OrderMainData" +
                                                                ")" +
                                                                "DELETE FROM CTE WHERE RN > 1";
                                                        System.out.println("Dataaaaaaaa:" + data.getString(3));
                                                        stmt1 = con.createStatement();
                                                        stmt1.executeUpdate(queryinsertimage);
                                                        Intent intent = new Intent(ListitemsboughtAR.this, DoneOrder.class);
                                                        intent.putExtra("orderid", id2 + "-" + nameid + "-" + all);
                                                        intent.putExtra("pharmacy_name", getIntent().getStringExtra("pharmacy_name"));
                                                        String diskr = getIntent().getStringExtra("pharmacy_disc");
                                                        String storeimg = getIntent().getStringExtra("storeicon");
                                                        intent.putExtra("pharmacy_disc", diskr);
                                                        intent.putExtra("storeicon", storeimg);
                                                        String specialtyid = getIntent().getStringExtra("specialtyid");
                                                        String NAMEID = getIntent().getStringExtra("nameid");
                                                        String lng = getIntent().getStringExtra("lng");
                                                        String lat = getIntent().getStringExtra("lat");
                                                        intent.putExtra("lat", lat);
                                                        intent.putExtra("lng", lng);
                                                        intent.putExtra("nameid", NAMEID);
                                                        String getnamee = getIntent().getStringExtra("nameofcus");
                                                        intent.putExtra("nameofcus", getnamee);

                                                        intent.putExtra("specialtyid", specialtyid);
                                                        intent.putExtra("storeid", getIntent().getStringExtra("storeid"));
                                                        startActivity(intent);
                                                        overridePendingTransition(R.anim.fade_in,R.anim.fade_out);
                                                        finish();
                                                    }


                                                }



                                    }









                                }

                            }else {
                                Toast.makeText(ListitemsboughtAR.this,"يجب عليك تسجيل الدخول اولا",Toast.LENGTH_LONG).show();
                                Intent intent = new Intent(ListitemsboughtAR.this,SignInAr.class);
                                startActivity(intent);
                            }






                            if (stmt1 != null) {
                                System.out.println("next");
                                //Intent intent = new Intent(Listitemsbought.this, order_done.class);
                                //startActivity(intent);
                                // finish();
                                isSuccess = true;


                            } else {
                                message = "Error 912:An error occurred come back later!";
                                isSuccess = false;
                            }
                        }
                    } catch (Exception ex) {
                        isSuccess = false;
                        ex.printStackTrace();
                        message = "Exceptions" + ex;
                    }
                }
            });
            return message;
        }

        @Override
        protected void onPostExecute (String r) {
            System.out.println("khalas");
            progressDialog.hideProgress();
                Toast.makeText(ListitemsboughtAR.this,message,Toast.LENGTH_LONG).show();

        }





    }

Помощник базы данных:

 public Cursor getDataOfTableAR(){
        SQLiteDatabase db = this.getWritableDatabase();
        String query = "SELECT * FROM " + TABLE_NAME_AR ;
        Cursor data = db.rawQuery(query, null);
        return data;
    }

 public boolean addDataAR(String item, String Price,String amount,String proid,String date){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(PRICE_AR,Price);
        contentValues.put(NAME_AR, item);
        contentValues.put(AMOUNT_AR, amount);
        contentValues.put(ID_AR,proid);
        contentValues.put(DATE_AR,date);
        Log.d(TAG, "addData: Adding " + item + " to " + TABLE_NAME_AR);

        long insert = db.insert(TABLE_NAME_AR,null,contentValues);

        if (insert == -1){
            return false;
        }else {
            return true;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...