درج محتوای SQLite
سلام دوستان
توبخش چهاردهم - بانک اطلاعات ( SQLite Database )که استاد اموزش دادن محتوای داخل دیتابیس رو میان توی لوکت نمایش میدن اگه بخوام محتوای دیتا بیس رو توی TextView یا درج کردنش رو ازEditTextاستفاده کنم باید چیکار بکنم
package com.uncocoder.course.app.database;
import android.app.Activity;
import android.os.Bundle;
public class DatabaseActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
--------------------------------------------------------------------------
کلاسG
package com.uncocoder.course.app.database;
import java.io.File;
import android.app.Application;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Environment;
public class G extends Application {
public static Context context;
public static SQLiteDatabase database;
public static final String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath();
public static final String DIR_DATABASE = DIR_SDCARD + "/database-test/";
@Override
public void onCreate() {
super.onCreate();
context = this.getApplicationContext();
new File(DIR_DATABASE).mkdirs();
database = SQLiteDatabase.openOrCreateDatabase(DIR_DATABASE + "/database.sqlite", null);
database.execSQL("CREATE TABLE IF NOT EXISTS person (" +
"person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , " +
"person_name TEXT, " +
"person_family TEXT, " +
"person_age INTEGER" +
")");
database.execSQL("INSERT INTO person (person_name,person_family,person_age) VALUES ('Name','Family','age')");
Cursor cursor = database.rawQuery("SELECT * FROM person WHERE person_age>10", null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("person_name"));
String family = cursor.getString(cursor.getColumnIndex("person_family"));
int age = cursor.getInt(cursor.getColumnIndex("person_age"));
}
cursor.close();
}
}
این رو توی اکتیویتی ای که TextView توش هست بنویسید(فرض می گیریم شما از جدول person اطلاعات آیتمی رو که person_id=1 است رو می خواید توی textView نمایش بدید و سه تا TextView با آیدی های txtName, txtFamily, txtAge برای نمایش اطلاعات فیلد های person_name, person_family, person_age داریم.
String name;
String family;
int age;
Cursor cursor = G.database.rawQuery("SELECT * FROM person WHERE person_id = 1",null);
while(cursor.moveToNext()){
name = cursor.getString(cursor.getColumnIndex("person_name"));
family = cursor.getStrng(cursor.getColumnIndex("person_family"));
age = cursor.getInt(cursor.getColumnIndex("person_age"));
}
cursor.close();
txtName.setText(name);
txtFamily.setText(family);
txtAge.setText("" + age);
برای نمایش اطلاعات چندین رکورد از این روش نمیشه رفت و باید از لیست استفاده کنید
اینم واسه گرفتن تمامی اطلاعات جدول : البته یه تیکه از کد هستش
cursor = mydb.rawQuery("SELECT * FROM TBL_CITY", null);
StructCityList ni;
while (cursor.moveToNext()) {
ni = new StructCityList();
ni.Id = cursor.getInt(cursor.getColumnIndex("Id"));
ni.Name = cursor.getString(cursor.getColumnIndex("Name"));
ni.X = cursor.getString(cursor.getColumnIndex("X"));
ni.Y = cursor.getString(cursor.getColumnIndex("Y"));
G.Cities.add(ni);
}
cursor.close();
close();
این هم یه استراکت هست که در کد بالا استفاده شده :
public class StructCityList {
public int Id;
public String Name;
public String X;
public String Y;
}
این متغیر سراسری هم تو کلاس G تعریف شده :
public static ArrayList<StructCityList> Cities = new ArrayList<StructCityList>();
در آخر هم میتونی با یه حلقه FOR کل مقادیری که داخل آرایه Cities ریخته شده رو بخونی
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .