Я действительно так устал искать ответ на этот вопрос. У меня есть таблица с некоторыми данными. Теперь у меня есть действие, в котором я делаю там 2 вещи.
- Сначала я получаю все строки в таблице и показываю их в виде списка
Теперь отображаются элементы в списке работает отлично.
Когда я нажимаю кнопку, я сохраняю данные на внешний 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;
}
}