ورود و عضویت
0
سبد خرید شما خالی است
0
سبد خرید شما خالی است

آموزش ساخت دفترچه یادداشت در فلاتر قسمت دوم

0 دیدگاه

در قسمت اول آموزش برنامه نویسی و ساخت دفترچه یادداشت برای فلاتر تا پیاده سازی متدهای دیتابیس پیش رفتیم.

اگر هنوز قسمت اول آموزش را مطالعه نکردید میتونید از لینک زیر استفاده کنید.

آموزش ساخت دفترچه یادداشت در فلاتر قسمت ۱

اگر هم هنوز Flutter را شروع نکردید میتونید از دوره های آموزش فلاتر ما استفاده کنید.

برای ادامه کار متدی میسازیم که تعداد کل اطلاعات ذخیره شده در دیتابیس را نمایش دهد.

بریا مثال اگر دو ردیف اطلاعات در دیتابیس داریم این متد عدد 2 را برمیگرداند.

این کار در موارد مختلفی کاربرد. برای مثال زمانی که این متد عدد 0 را برمیگرداند میتونیم به کاربر پیام بدیم که هنوز هیچ اطلاعاتی وارد نکردید.

Future<int> getCount() async {
  var dbClient = await db;
  int count = Sqflite.firstIntValue(await dbClient
      .rawQuery("SELECT COUNT(*) FROM ${Constants.TABLE_NAME}"));
  return count;
}

اما مهم ترین بخش این پروژه فلاتر گرفتن اطلاعات یک ردیف مشخص از رکورد های دیتابیس می باشد.

برای این کار در قسمت قبلی گفتیم که نیاز به آیدی رکورد موردنظر خودمون داریم.

با داشتن آیدی و ارسال آن به متد زیر به عنوان پارامتر ورودی اطلاعات رکورد مورد نظرا را دریافت میکنیم.

Future<note> getSingleItem(int id) async {
  var dbClient = await db;
  var result = await dbClient.rawQuery(
      "SELECT * FROM ${Constants.TABLE_NAME} WHERE ${Constants.COLUM_ID} = $id");
  if (result == null) return null;
  return new Note.fromMap(result.first);
}

اگر یادتون باشه در کدهای کلاس Note یک کانستراکتور به نام Note.fromMap() داشتیم.

و همونطور هم که گفتیم در فلاتر اطلاعات بصورت Map در دیتابیس ذخیره میشه و طبیعتا هم موقع دریافت به صورت Map هستند.

این متد کار تبدیل Map به آبجکت معمولی از کلاس Note و انجام میده.

 Note.fromMap(Map<string, dynamic=""> map) {
  this._text = map['name'];
  this._id = map['id'];
  this._date = map['date'];
}

برای پیاده سازی متد مخصوص پاک کردن اطلاعات هم دوباره ما نیاز به آیدی رکورد خودمون داریم.

طبق متد زیر میبینید که علاوه بر آیدی دستور ما شامل نام جدول هم هست.

 
Future<int> deleteItem(int id) async {
  var dbClient = await db;
  int count = await dbClient.delete(Constants.TABLE_NAME,
      where: "${Constants.COLUM_ID} = ?", whereArgs: [id]);
  return count;
}

و اما آخرین کار مهمی که باید یاد بگیریم در دیتابیس انجام بدیم بروزرسانی اطلاعات هست.

برای بروزرسانی اطلاعات یک رکورد از دستور update استفاده میکنیم.

این متد هم از یک آیدی به عنوان پارامتر استفاده می کند.

 Future<int> updateItem(Note note) async {
  var dbClient = await db;
  int count = await dbClient.update(Constants.TABLE_NAME, note.toMap(),
      where: "${Constants.COLUM_ID} = ?", whereArgs: [note.id]);

  return count;
}

خب ما در این دو قسمت تونستیم کار با دیتابیس و به همراه دستورات اصلی یادبگیریم.

امیدوارم که این آموزش برنامه نویسی فلاتر مورد رضایت شما قرار گرفته باشد.

هرگونه کپی برداری از مطالب بدون ذکر نام و لینک مرجع فارسی Flutter ممنوع می باشد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Hesam
29 آگوست 2019
آموزش فارسی فلاتر
آموزش فارسی flutter