Soru & Cevap

Android-Veritabanı

23.06.2016 - 10:01

Merhaba.

Butona bastıkça hazır sqlite veritabanındaki bir tablodan veri silip diğer tabloya veri ekleme işlemini yapmak istiyorum. Bunun için textviewe veritabanından veri çektim.Bu ekrandaki veriyi veritabandan silsin başka bir tabloya eklesin.

Bunu DbBrowserda Trigger kullanarak mi yapmalıyım yoksa başka bir yöntem var mı? Sqlite veritabanında trigger nasıl kullanılır onu da bilmiyorum.Yardımcı olursanız sevinirim. Şimdiden teşekkürler.

 

8 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-51575-1465822570.jpg
ibrahim.bolat
23.06.2016 - 10:48

Class içinde senkron bir yapı kur bunu butonun onclick'inde çağır.

class Gorev extends AsyncTask<String, String, String> {

        @Override
        protected String doInBackground(String... params) {

            //Verileri burada sil database class'ından çağırdığın sil methodu ile ve o silinen veriyi
            // global bir değişkende tut  
 
            return null;
        }
        @Override
        protected void onPostExecute(String s) {
               
           // burada da eğer silinme gerçekleşmiş ise global değişkeni db classındaki ekleme
           // methodunu çağırıp ekle örn:  dbEkle(globaDeğişken)

           // progress süreci göstersin
            progress.dismiss();

            
        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            progress = new ProgressDialog(MainActivity.this);
            progress.setTitle("Lütfen Bekleyiniz");
            progress.setCancelable(false);
            progress.setMessage("Güncelleniyor...");
            progress.show();
        }
    }

Database ekleme ve silme işlemleri de aşağıdaki gibi olabilir kendi projene uyarla;

public void addProduct(String product) {

        ContentValues values = new ContentValues();
        values.put(COLUMN_PRODUCTNAME, PRODUCTNAME);
        values.put(COLUMN_QUANTITY, QUANTITY);

        SQLiteDatabase db = this.getWritableDatabase();

        db.insert(TABLE_PRODUCTS, null, values);
        db.close();
}

//---------------------------------
 public boolean deleteProduct(String productname) {

        boolean result = false;

        String query = "Select * FROM " + TABLE_PRODUCTS + " WHERE " + COLUMN_PRODUCTNAME + " =  \"" + productname + "\"";

        SQLiteDatabase db = this.getWritableDatabase();

        Cursor cursor = db.rawQuery(query, null);

        Product product = new Product();

        if (cursor.moveToFirst()) {
            product.setID(Integer.parseInt(cursor.getString(0)));
            db.delete(TABLE_PRODUCTS, COLUMN_ID + " = ?",
                    new String[] { String.valueOf(product.getID()) });
            cursor.close();
            result = true;
        }
        db.close();
        return result;
    }