Android studio sqllite güncelleme olayı
01.06.2018 - 07:57
Merhabalar arkadaslar
Android Studio ve sql lite ile hazırladığım uygulamada veritabanına bir kolon eklemem lazım. yeni yükleyenler için sorun yok yeni kolonla tablo oluşuyo ama güncelleme yapanlarda sorun var. sanırım yeni tabloyu oluşturamıyo çünkü databaseden hiç veri çekemiyorum.
kodlarım aşağıdaki gibi yardımcı olursanız çok sevinirim
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
import java.util.HashMap;
/**
* Created by METEHAN on 17.11.2017.
*/
public class Database extends SQLiteOpenHelper {
// All Static variables
// Database Version
private static final int DATABASE_VERSION = 2;
// Database Name
private static final String DATABASE_NAME = “login_database”;//database adı
private static final String TABLE_NAME = “loginn”;
private static String KULLANICI_ID = “id”;
private static String KULLANICI_MAIL = “mail”;
private static String KULLANICI_SIFRE = “sifre”;
private static String KAYIT_TARIHI = “tarih”;
private static String ADI = “adi”;
private static String SOYADI = “soyadi”;
private static String BULUNSUN = “bulunsun”;
public Database(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) { // Databesi oluşturuyoruz.Bu methodu biz çağırmıyoruz. Databese de obje oluşturduğumuzda otamatik çağırılıyor.
String CREATE_TABLE = “CREATE TABLE ” + TABLE_NAME + “(”
+ KULLANICI_ID + ” INTEGER PRIMARY KEY,”
+ KULLANICI_MAIL + ” TEXT,”
+ KULLANICI_SIFRE + ” TEXT,”
+ KAYIT_TARIHI + ” TEXT,”
+ ADI + ” TEXT,”
+ SOYADI + ” TEXT”
+ BULUNSUN + ” TEXT”+ “)”;
db.execSQL(CREATE_TABLE);
}
public void kullaniciEkle(String mail,String sifre,String tarih,String adi,String soyadi, String bulunsun) {
//kullaniciEkle methodu ise adı üstünde Databese veri eklemek için
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KULLANICI_MAIL, mail);
values.put(KULLANICI_SIFRE, sifre);
values.put(KAYIT_TARIHI, tarih);
values.put(ADI, adi);
values.put(SOYADI, soyadi);
values.put(BULUNSUN, bulunsun);
db.insert(TABLE_NAME, null, values);
db.close(); //Database Bağlantısını kapattık*/
}
public ArrayList<HashMap> kitaplar(){
//Bu methodda ise tablodaki tüm değerleri alıyoruz
//ArrayList adı üstünde Array lerin listelendiği bir Array.Burda hashmapleri listeleyeceğiz
//Herbir satırı değer ve value ile hashmap a atıyoruz. Her bir satır 1 tane hashmap arrayı demek.
//olusturdugumuz tüm hashmapleri ArrayList e atıp geri dönüyoruz(return).
SQLiteDatabase db = this.getReadableDatabase();
String selectQuery = “SELECT * FROM ” + TABLE_NAME;
Cursor cursor = db.rawQuery(selectQuery, null);
ArrayList<HashMap> kitaplist = new ArrayList<HashMap>();
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
HashMap map = new HashMap();
for(int i=0; i<cursor.getColumnCount();i++)
{
map.put(cursor.getColumnName(i), cursor.getString(i));
}
kitaplist.add(map);
} while (cursor.moveToNext());
}
db.close();
return kitaplist;
}
public int getRowCount() { //tabloda kaç satır kayıtlı olduğunu geri döner
String countQuery = "SELECT * FROM " + TABLE_NAME;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
int rowCount = cursor.getCount();
db.close();
cursor.close();
// return row count
return rowCount;
}
public void resetTables(){
// Tüm verileri siler. tabloyu resetler.
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_NAME, null, null);
db.close();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME);
onCreate(db);
}
}
26
Görüntülenme
0 Beğeni