Sqlite Veritabanı Kayıt Güncelleme Sorunu

Rapor et
Soru

Bu soru rapor edilmelidir hissediyorum neden kısaca açıklayınız.

Rapor et
İptal

Merhaba Arkadaşlar
Uygulamamın içinde 100 adet bilgi kaydı var. Kullanıcıların bu bilgileri kendilerine göre düzenleme yetkisine sahip.
Programımdaki kayıt sayısını 150 ye çıkartıp yeni bir güncelleme yayınlamak istiyorum  ancak güncelleme yaptıktan sonra eski kullanıcılar bu yeni kayıtları göremiyor, illaki programı silip tekrardan kurmaları gerekiyor. Bu da kişilerin kendilerine göre düzenlediği kayıtları baştan tekrar düzenlemesi anlamına geliyor. Bu sorunu nasıl çözebilirim.
Teşekkürler.

Devam Ediyor 0
Android 4 sene 6 Cevap 593 görüntüleme Intern 0

Yazar HakkındaIntern

Cevaplar ( 6 )

  1. Avatar

    Bu cevap rapor edilmelidir hissediyorum neden kısaca açıklayınız.

    Rapor et
    İptal

    Bunu şu şekilde yapabilirsin. Yeni oluşturduğun uygulama ilk açıldığında sadece bir kere çalıştırmak üzere bir upgrade Sql çalıştırman gerekecek. Bu çalıştıracağın sql kodu ile mevcut veri tabanına istediğin yeni alanları ekleyeceksin. 
    [crayon-579612412ea59779165574/]
    Örn: “ALTER TABLE mobilhanem_db.kisiler ADD adres TEXT”; Bu şekilde istediğin alanları ekleyebilirsin.

  2. Avatar

    Bu cevap rapor edilmelidir hissediyorum neden kısaca açıklayınız.

    Rapor et
    İptal

    Yada yukardaki yol yerine bu daha garanti olur.
    @Override
    public void onUpgrade(SQLiteDatabase arg0, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
     
    }
    SQLiteOpenHelper extend ettiğin class içindeki yukardaki method oluşur. Bu method .getWritableDatabase(): methodu çağırıldığında otomatik çağırılır.
    Sen de o method içinde
    if (newVersion > oldVersion) {
        db.execSql(“ALTER TABLE mobilhanem_db.kisiler ADD adres TEXT”);
    }
    db.setVersion(newVersion);

  3. Avatar

    Bu cevap rapor edilmelidir hissediyorum neden kısaca açıklayınız.

    Rapor et
    İptal

    Yalnız ben yeni bir tablo oluşturmayacağım, var olan tablonun içindeki verilerin sayısını arttıracağım.
    Şöyle ki var olan tablo 2 kayıtlı olsun
    id ad soyad
    1 a     b
    2 c     d
    daha sonra kullanıcı da kendine göre bu kayıtlarda değişiklik yapsın
    id ad soyad
    1 a     x
    2 k     d
     
    şimdi bende tabloya yeni kayıtlar ekledim
    id ad soyad
    1 a     b
    2 c     d
    3 e     f
    ama istiyorum ki kullanıcının düzenlediği kayıtlar silinmeden 3 nolu kayıt veritabanına eklenebilsin
    yani güncelleme ile şöyle olsun
    id ad soyad
    1 a     x
    2 k     d
    3 e     f
    İnşallah sorunumu daha net açıklayabilmişimdir.
     
     
     

  4. Avatar

    Bu cevap rapor edilmelidir hissediyorum neden kısaca açıklayınız.

    Rapor et
    İptal

    Tamam burda o zaman senin eklemek istediğin tüm yeni kayıtları programın içinde ekliyeceskin. Yine yukardaki method içinde
    if (newVersion > oldVersion) {
        db.execSql(“INSERT INTO mobilhanem_db.kisiler (ad,soyad) VALUES (e,f)”);}

    db.setVersion(newVersion);

     
     
    şeklinde eklemek istediğin verileri ekliceksin ve databse versionunu newVersion olarak set edeceksin .Böylelikle bu kod bir defa çalışmış olacak ve senin veriler set edilmiş olacak.
     

  5. Avatar

    Bu cevap rapor edilmelidir hissediyorum neden kısaca açıklayınız.

    Rapor et
    İptal

    Taha bey çok teşekkür ederim, sorun çözüldü. Arkadaşlara bilgi olsun diye gerekli kod bloğunu da veriyorum. assets klasörü altına bir text dosyası koymuştum, bu text in içeriğini veritabanına eklemek istiyordum. Öncelikle yapılması gereken veritabanı versiyonunu yükseltmeniz ardında da upgrade kısmına şu kodları girmek.  
    [crayon-579612412dfc0367157298/]
    En can alıcı noktalardan bir tanesi de , eğer büyük bir veri ekliyorsanız ve içersinde ‘ ” tırnak işaretleri geçiyorsa alttaki yöntemi kesinlikle kullanmayınız. 
    [crayon-579612412dfca986678558/]

  6. Avatar

    Bu cevap rapor edilmelidir hissediyorum neden kısaca açıklayınız.

    Rapor et
    İptal

    Kesme işareti eklemek için bakabilirsiniz.
    https://stackoverflow.com/questions/55976967/how-can-insert-cutout-sign-sqlite-database-from-a-txt-file

Cevap bırak

Gözat

KOD PAYLAŞIRKEN DİKKAT!!!!

HTML kod paylaşmak için

<pre class="html">HTML KOD</pre>
XML kod paylaşmak için
<pre class="xml">XML KOD</pre>
Diğer dillerde(php,java,android,javasvript,c# vs..) kod paylaşmak için
<pre>KOD</pre>
tagları arasında paylaşmayı unutmayın.