Android ile SqLite Veritabani Update, Delete Islemi

Son adroid ders anlatimimizda da güncelleme ve silme islemini yapacagiz. Listelemenin yapildigi sayfadan listview de tiklanan satir bu sayfaya ayrintili olarak yazilir, gerekli alanlara. Daha sonra güncelleme yapilacaksa gerekli sekilde alanlar degistirilir. Ve güncelle butonu tiklanir. Ya da silme yapilacaksa sil butonu tiklanir.

Sqlite veritabaninda delete -sil-, update -güncelle- islemi yapacagiz. Öncelikle gerekli tasarimi yapmamiz gerekiyor asagidaki gibi.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/ysl"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/EdtKulAdLst"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="48dp"
        android:ems="10"
        android:hint="@string/kullan_c_ad_" 
        android:textColor="#000000">

    </EditText>

    <EditText
        android:id="@+id/EdtSifreLst"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/EdtKulAdLst"
        android:ems="10"
        android:hint="@string/sifre_" 
        android:textColor="#000000"/>

    <EditText
        android:id="@+id/EdtKulYerLst"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/EdtSifreLst"
        android:ems="10"
        android:hint="@string/kullan_m_yeri_"
        android:textColor="#000000" />

    <EditText
        android:id="@+id/EdtHesNoLst"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/EdtKulYerLst"
        android:ems="10"
        android:inputType="phone"
        android:hint="@string/hesap_no_"
        android:textColor="#000000" />

    <Button
        android:id="@+id/BtnGuncelle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:text="@string/g_ncelle" />

    <Button
        android:id="@+id/BtnSil"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/BtnGuncelle"
        android:text="@string/sil" />

</RelativeLayout>

Asagida .java sinifinin kodlari ve açiklamasi verilmistir.

Veritabani sifre; //veritabani nesnesi
 	 private EditText Edt_Kuladi,Edt_sifre,Edt_KulYer,Edt_HesNo;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.list_actvity);
		sifre = new Veritabani(this);

		  Edt_Kuladi=(EditText) findViewById(R.id.EdtKulAdLst);//edittext nesnesi
          Edt_sifre=(EditText) findViewById(R.id.EdtSifreLst);//edittext nesnesi
          Edt_KulYer=(EditText) findViewById(R.id.EdtKulYerLst);//edittext nesnesi
          Edt_HesNo=(EditText) findViewById(R.id.EdtHesNoLst);//edittext nesnesi
          
          Button guncelleBtn = (Button) findViewById(R.id.BtnGuncelle);//button nesnesi
          Button SilBtn = (Button) findViewById(R.id.BtnSil);//button nesnesi
          
          final int id ;//id tanimlanir
          id = lstvwMain.idSnf;//listview'den gelen id alinir 
          ayrintiliList(id);//metoda bu id parametresi gönderilerek id ye karsilik gelen veritabanindan diger bilgiler çekilir.
         
          guncelleBtn.setOnClickListener(new View.OnClickListener() {//güncelle butonu oncilick
              
              public void onClick(View v) {
            	  KayitGuncelle(id, Edt_Kuladi.getText().toString(), Edt_sifre.getText().toString(), 
            			  Edt_KulYer.getText().toString(),Integer.parseInt(Edt_HesNo.getText().toString()));//parametreler metoda gönderilir.
              	 
              }
          });        
          
          
          SilBtn.setOnClickListener(new View.OnClickListener() {//sil butonu oncilick metodu
              
              public void onClick(View v) {
            	  KayitSil(id);//metoda id degeri gönderilir.
              	 
              }
          });          
          
	}
	
	public void KayitGuncelle(long id, String Kad, String sifr, String Kyr, int hsNo) {//kayit güncelle metodu
		  ContentValues cv = new ContentValues();//contentvalues nesnesi
		  cv.put("kullanici_adi", Kad);//yeni kullanici_adi
		  cv.put("sifre", sifr);//yeni sifre
		  cv.put("kullanilan_yer", Kyr);//yeni kullanilan_yer
		  cv.put("hesap_no", hsNo);//yeni hesap_no
		  SQLiteDatabase db = sifre.getWritableDatabase();
		  db.update("sifre", cv, "id" + "=" + id, null);//id degerine göre güncelleme yapilir
		  startActivity(new Intent("android.intent.action.LSTVWMAIN"));// güncelleme islemi bittikten sonra aktif edilecek ekran belirlenir.

		}  
	

	protected void KayitSil(long id) {//sil metodu
		 SQLiteDatabase db=sifre.getReadableDatabase();//sqlite veritabani nesnesi
		 db.delete("sifre", "id" + "=" + id, null);//id degerine göre 
		 Toast.makeText(getApplicationContext(), "Kayit Silindi" , Toast.LENGTH_LONG).show();//uyari mesaji
		 startActivity(new Intent("android.intent.action.LSTVWMAIN")); //silindikten sonra aktif olacak ekran
	}
	
	
	public void ayrintiliList(int id){//listview de tiklanan satirin id'si select edilerek ayrintili sekilde listelenir.
		
	        String selectQuery = "SELECT * FROM sifre WHERE id="+id;//sql sorgusu
	        SQLiteDatabase db = sifre.getReadableDatabase();// veritabaninin ne amaçla açildigi belirtilir -okuma, yazma- 	       
	        Cursor cursor = db.rawQuery(selectQuery, null); //sorgu execute edilir
 
	        if(cursor.moveToFirst()){
	             String k_adi = cursor.getString((cursor.getColumnIndex("kullanici_adi"))); //degerler okunur
	             long idd = cursor.getLong(cursor.getColumnIndex("id"));//degerler okunur
	             String sifre = cursor.getString((cursor.getColumnIndex("sifre")));//degerler okunur
	             String k_yeri = cursor.getString((cursor.getColumnIndex("kullanilan_yer")));//degerler okunur
	             int h_No = cursor.getInt((cursor.getColumnIndex("hesap_no"))); //degerler okunur
	            
	             Edt_Kuladi.setText(k_adi);//okunan degerler edittext'lere yazilir
	             Edt_sifre.setText(sifre);//okunan degerler edittext'lere yazilir
	             Edt_KulYer.setText(k_yeri);//okunan degerler edittext'lere yazilir
	             Edt_HesNo.setText(h_No+"");//okunan degerler edittext'lere yazilir

	        }while (cursor.moveToNext());
	        cursor.close();
	        db.close(); 
	    }

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir