بسم الله الرحمن الرحيم
في الدرس السابق أخذنا مقدمة او شرح بسيط لاستخدام قاعدة البيانات اس كيو لايت في كيفية ادراج عناصر داخلها وعرضهم في داخل تطبيق اندرويد.
لمراجعة الدرس الأول : اس كيو لايت في برمجة تطبيقات الاندرويد 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) { } } }
في دروس قادمة سوف نتعلم اضافة اوامر الحذف بدالة والتعديل بدالة والاضافة بدالة .. لكي نستطيع استدعاء هذه الدوال من اكتفتي اخر ..
كما سوف نتعلم كيف ان المستخدم بنفسه من خلال الضغط على زر يستطيع اضافة اشخاص او حذفهم او تعديلهم إلخ ..
وهذا المجال كما ذكرت واسع وضخم جداً .. وفي كل درس سوف نتعلم أضافات جديدة .. حتى نصل مستوى الاحتراف بالتعامل مع قاعدة البيانات اس كيو لايت مع برمجة تطبيقات الاندرويد.
نرجوا الدعم والنشر .. و ان شاء الله يستفيد الجميع .. والسلام عليكم 🙂
شكرا لكم
موضوع جميل نجرب ونعطيك النتيجة بإذن الله
نسأل الله أن لايضيع أجرك وأن يثيبك على قدر جهودك