Soru & Cevap

Sqllite data base ...

09.03.2014 - 07:35

merhaba,

veri tabanına kod içerisinden manuel olarak veri kaydetmek istiyorum.(daha sonra sorgu yapıcam). methodu yazdım. onCreate () içerisinde çağırdığımda, programı her çalıştırdığım zaman veriyi bi daha kaydediyor. onCreate() içerisinde çağırmasam bu seferde veri tabanına kaydetmiyor. Bunu nasıl hallederim , basit bi kod yazabilir misiniz ? 

teşekürler..

2 Görüntülenme

2 Cevap

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

picture-8572-1421266577.png
mmnbsl
09.03.2014 - 08:45

@Bekir Dursun

mantığı anlamadım

[code]

private int veriEkle(){

     ContentValues cv = new ContentValues();

     cv.put(....,....);

     SQLiteDatabase db = helper.getWritableDatabase();

     db.insert(TABLE_NAME,null,cv);

}

[/code]

if 'in içine bunu yazdım 

[code]"SQL_CUMLESI"[/code] dediğiniz ne oluyor ?

Bekir Dursun
10.03.2014 - 12:25
Bu işlemi 1 defa çalıştırmak istiyorsun sen değil mi? doğru mu anlamışım acaba? Eğer öyle ise, veritabanın ilk durumda boş olacaktır. Veri ekleyeceğin tablodan verileri çekeceğin bir cümle yazacaksın ve değişkene atayacaksın. İlk durumda boş olacağı için değer gelmeyecek. Sonraki if komutunda eğer boş ise dediği için yukarıda vermiş olduğun veritabanına yazma işlemini yaptıracaksın.. Daha sonra uygulamayı kapatıp açtığın zaman en başa tekrar gelirsek; değişkene boş değer değil, bir önceki açılışta eklediğin veriler geleceği için, if bloguna uğramadan devam edecektir. Sonuç olarak veritabanına yazma işlemini 1 defa kullanmış olacaksın.
Mümin Başol
14.03.2014 - 02:39
Dediğinizin bir benzerini aynı mantıkla SharedPreferences ile sağladım. Mantık için teşekkür ederim.
picture-2176-1429627808.jpg
bekirdursun
09.03.2014 - 07:51

onCreate() içerisinde şu mantıkla kodlama yapabilirsin.

[code]deger = "SQL_CUMLESI";

if(deger==null){
     //KAYIT İŞLEMİNİ BURADA YAPMALISIN.
}[/code]

Uygulamayı kapatıp tekrar açtığın zaman kayıt işlemini daha önce yaptığın için bu alanı atlayacaktır.