اس كيو لايت في برمجة تطبيقات الاندرويد 2 SQLite Android

بسم الله الرحمن الرحيم

في الدرس السابق أخذنا مقدمة او شرح بسيط لاستخدام قاعدة البيانات اس كيو لايت في كيفية ادراج عناصر داخلها وعرضهم في داخل تطبيق اندرويد.

لمراجعة الدرس الأول : اس كيو لايت في برمجة تطبيقات الاندرويد 1 SQLite Android

وفي هذا الدرس إن شاء الله سوف نستخدم دالة تحديث, حذف .. وعرضهم في التطبيق, نكمل على الدرس السابق.

كما أحب أن أذكر إن في هذا الدرس من يقوم بالتعديل او التحديث و الحذف .. هو نفسه المبرمج. فقط لتعرف كيفية او آلية الأستخدام .. وفي الدروس القادمة التابعة لنفس هذه السلسلة, سوف نتعلمها بإن المستخدم هو من يستطيع التعديل إلخ.

 تابع المعاينة وفيها شرح بسيط :

الأوامر الجديدة في هذا الدرس :

أمر التحديث / 

execSQL(“UPDATE ” + TABLE + ” SET NAME = ‘Ali‘ WHERE AGE = ‘22‘”);

ويعني قم بـإعطاء الأسم علي .. لكل شخص عمره 22.

أمر الحذف /

execSQL(“DELETE FROM ” + TABLE + ” WHERE NAME = ‘Ali‘”);

ويعني قم بـحذف كل شخص اسمه علي.

بالنسبة لأوامر التحديث او الحذف تستطيع تغيير القيم على راحتك ولكن بنفس النمط .. احذف الاسم او العمر او الدولة مع كامل بياناتها ..
أو قم بتعديل من ينتمي للدولة كذا او الذي عمره كذا .. وهكذا ~~

هذا الشرح عربياً للعرب $: , عموماً كما أذكر إنني أضفت سطر جديد للدرس الأول وهو :

execSQL(“DROP TABLE ” + TABLE);

و السبب .. إنه كان في كل مرة يشتغل فيها التطبيق ينفذ دالة اون كريت ويقوم بادراج الحقول في مرة يشتغل فيها التطبيق .. وهكذا تتكرر الحقول ..
لذلك بهذا السطر قلنا له بعد انشاء القاعدة قم بتفريغ الجدول .. وبعدها ادرج داخله ..

هكذا بعد كل تشغيل يتم التفريغ بعدها الاضافة 🙂

الآن الكود كامل الذي انتهينا به هذا الدرس هو :

package com.andrody.testandrody;

import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;


public class MainActivity extends Activity {

    LinearLayout LinearLayout;
    SQLiteDatabase database;
    private static String DBNAME = "Sqlite_simple.db";
    private static String TABLE = "MY_TABLE";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout = (LinearLayout) findViewById(R.id.linearlayout);

        database = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
        database.execSQL("DROP TABLE " + TABLE); // This line has been affixed to the second lesson
        database.execSQL("CREATE TABLE IF  NOT EXISTS " + TABLE + " (ID INTEGER PRIMARY KEY, NAME TEXT, AGE TEXT, COUNTRY TEXT);");
        database.execSQL("INSERT INTO " + TABLE + "(NAME, AGE, COUNTRY) VALUES('Abboudi_Aliwi','19','Syria')");
        database.execSQL("INSERT INTO " + TABLE + "(NAME, AGE, COUNTRY) VALUES('Mohammed','22','Saudi Arabia')");
        database.execSQL("INSERT INTO " + TABLE + "(NAME, AGE, COUNTRY) VALUES('Ali','25','Egypt')");
        database.execSQL("INSERT INTO " + TABLE + "(NAME, AGE, COUNTRY) VALUES('Firas','14','Jordan')");
        database.execSQL("INSERT INTO " + TABLE + "(NAME, AGE, COUNTRY) VALUES('Youssef','30','Palestine')");
        database.execSQL("INSERT INTO " + TABLE + "(NAME, AGE, COUNTRY) VALUES('Ahmed','20','Lebanon')");
        database.close();

        SHOW();

// Add To Lesson 2
        TextView text1 = new TextView(this);
        text1.setText("============After the update============");
        LinearLayout.addView(text1);

        database = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
        database.execSQL("UPDATE " + TABLE + " SET NAME = 'Ali' WHERE AGE = '22'");
        database.close();

        SHOW();

        TextView text2 = new TextView(this);
        text2.setText("============After delete=============");
        LinearLayout.addView(text2);

        database = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
        database.execSQL("DELETE FROM " + TABLE + " WHERE NAME = 'Ali'");
        database.close();

        SHOW();


    }

    public void SHOW() {
        try {
            database = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
            Cursor allrows = database.rawQuery("SELECT * FROM " + TABLE, null);

            TextView text = new TextView(this);
            text.setText("========================================");
            LinearLayout.addView(text);

            if (allrows.moveToFirst()) {
                do {
                    LinearLayout id_row = new LinearLayout(this);
                    LinearLayout name_row = new LinearLayout(this);
                    LinearLayout age_row = new LinearLayout(this);
                    LinearLayout country_row = new LinearLayout(this);

                    final TextView id_ = new TextView(this);
                    final TextView name_ = new TextView(this);
                    final TextView age_ = new TextView(this);
                    final TextView country_ = new TextView(this);
                    final TextView sep = new TextView(this);

                    String ID = allrows.getString(0);
                    String NAME = allrows.getString(1);
                    String AGE = allrows.getString(2);
                    String COUNTRY = allrows.getString(3);

                    id_.setTextColor(Color.RED);
                    id_.setPadding(20, 5, 0, 5);
                    id_.setTextSize(30);
                    name_.setTextColor(Color.RED);
                    name_.setPadding(20, 5, 0, 5);
                    name_.setTextSize(30);
                    age_.setTextColor(Color.RED);
                    age_.setPadding(20, 5, 0, 5);
                    age_.setTextSize(30);
                    country_.setTextColor(Color.RED);
                    country_.setPadding(20, 5, 0, 5);
                    country_.setTextSize(30);

                    id_.setText("ID : " + ID);
                    id_row.addView(id_);
                    LinearLayout.addView(id_row);
                    name_.setText("NAME : " + NAME);
                    name_row.addView(name_);
                    LinearLayout.addView(name_row);
                    age_.setText("AGE : " + AGE);
                    age_row.addView(age_);
                    LinearLayout.addView(age_row);
                    country_.setText("COUNTRY : " + COUNTRY);
                    country_row.addView(country_);
                    LinearLayout.addView(country_row);
                    sep.setText("-------------------------------------------------");
                    LinearLayout.addView(sep);
                }
                while (allrows.moveToNext());
            }
            database.close();
        } catch (Exception e) {
        }
    }
}

في دروس قادمة سوف نتعلم اضافة اوامر الحذف بدالة والتعديل بدالة والاضافة بدالة .. لكي نستطيع استدعاء هذه الدوال من اكتفتي اخر ..
كما سوف نتعلم كيف ان المستخدم بنفسه من خلال الضغط على زر يستطيع اضافة اشخاص او حذفهم او تعديلهم إلخ ..

وهذا المجال كما ذكرت واسع وضخم جداً .. وفي كل درس سوف نتعلم أضافات جديدة .. حتى نصل مستوى الاحتراف بالتعامل مع قاعدة البيانات اس كيو لايت مع برمجة تطبيقات الاندرويد.

نرجوا الدعم والنشر .. و ان شاء الله يستفيد الجميع .. والسلام عليكم 🙂

About عبدالقادر عليوي

مواليد 1996 , سوري الجنسية, طالب علم, لدي شغوف كبير في تعلم كل ما يتعلق بالانترنت من تطوير وحماية, أحب القراءة كثيراً .. هدفي نشر العلم بشتى أنواعه ومجالاته, متابع من الدرجة الأولى لـ الدكتور ابراهيم الفقي و الشيخ أحمد ديدات - رحمهم الله -.

Check Also

التقنيات التي نستطيع برمجة تطبيقات والعاب الاندرويد بها

هل أنت محتار من أين تريد البدأ في مجال برمجة التطبيقات للهواتف الذكية أو الألعاب عالية الاداء ؟ تعرف في هذا المقال عن اللغات والتقنيات واختر منها ما يناسبك لدخول هذا المجال

تعلم برمجة تطبيق اندرويد لمدونتك البلوجر (1)

هل لديك تدوينة أو موقع إخباري ؟ أو معرض يعرض الكثير من البيانات من وسائط ؟ وبحاجة لعرضها في تطبيق اندرويد ؟ هذه فرصتك من هنا وللمبتدئين تعلم برمجة تطبيق لمدونتك

عرض صورة في التطبيق من فايربيس

بسم الله الرحمن الرحيم اليوم سيكون شرحنا عن كيفية عرض صورة  في التطبيق من قاعدة …

2 comments

  1. ابو محمد

    موضوع جميل نجرب ونعطيك النتيجة بإذن الله
    نسأل الله أن لايضيع أجرك وأن يثيبك على قدر جهودك

ضع بصمتك بتعليق يعبر عن امتنانك

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.