بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

درج محتوای SQLite

مدیریت گفتگو
raeesi 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام دوستان

توبخش چهاردهم - بانک اطلاعات ( 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();

    }
}

نظرات

hosseinAmini 11 سال پیش
مقداره دیتابیس رو با دستور select می گیرید و مقدار رو برایTextView ست می کنید. ولی چون دیتابیس معمولا بیشتر از یک روکورد داره ، محتواش رو باید توی لیست نمایش داد
raeesi 11 سال پیش
الان من با چه کدی بیام مقدارش رو باTextView ست کنم چون تمام کدهای دیتابیس من توی کلاس Gهستش اگه میشه لطفا کدهایی رو که ضمیمه کردم برام دستکاریش کنید ممنون میشم

پاسخ‌ها 2

hosseinAmini 11 سال پیش

این رو توی اکتیویتی ای که 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);

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

نظرات

raeesi 11 سال پیش
ممنونم
hoseinnrz 11 سال پیش

اینم واسه گرفتن تمامی اطلاعات جدول : البته یه تیکه از کد هستش 

        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 ریخته شده رو بخونی 

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .