آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

درج محتوای SQLite

raeesi  11 سال پیش  11 سال پیش
+1 0

سلام دوستان

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

    }
}
0 0
مقداره دیتابیس رو با دستور select می گیرید و مقدار رو برایTextView ست می کنید. ولی چون دیتابیس معمولا بیشتر از یک روکورد داره ، محتواش رو باید توی لیست نمایش داد (11 سال پیش)
0 0
الان من با چه کدی بیام مقدارش رو باTextView ست کنم چون تمام کدهای دیتابیس من توی کلاس Gهستش اگه میشه لطفا کدهایی رو که ضمیمه کردم برام دستکاریش کنید ممنون میشم (11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
hosseinAmini  11 سال پیش
+2 0

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

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

0 0
ممنونم (11 سال پیش)
پاسخ به سوال 
hoseinnrz  11 سال پیش
+1 0

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

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


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