b.kordtabar

اشکال در ذخیره داده ها در پایگاه داده sqlite

4 ارسال در این موضوع قرار دارد

با سلام

می خواهم لیستی از داده ها را در پایگاه داده sqlite اندروید ذخیره کنم داده مربوط به ستون آخر نمایش داده نمی شود

کد مربوطه را ارسال می کنم، اگر می توانید راهنمایی کنید.

package com.example.t.newsqlite;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList;
import java.util.List;

public class DatabaseHandler extends SQLiteOpenHelper {


    private static final int DATABASE_VERSION = 1;


    private static final String DATABASE_NAME = "carManager";


    private static final String TABLE_CONTACTS = "cars";


    private static final String KEY_ID = "id";
    private static final String KEY_BRAND = "brand";
    private static final String KEY_WORKED = "worked";
    private static final String KEY_MODEL="model";

    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }


    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
                + KEY_ID + " INTEGER PRIMARY KEY," + KEY_BRAND + " TEXT,"
                + KEY_WORKED + " TEXT," + KEY_MODEL + " TEXT " + ")";
        db.execSQL(CREATE_CONTACTS_TABLE);
    }


    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);

        onCreate(db);
    }

    public void addContact(Car car) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(KEY_BRAND, car.getBrand());
        values.put(KEY_WORKED, car.getWorked());
        values.put(KEY_MODEL, car.getModel());
        db.insert(TABLE_CONTACTS, null, values);
        db.close();
    }


    public Car getContact(int id) {
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.query(TABLE_CONTACTS, new String[]{KEY_ID,
                        KEY_BRAND, KEY_WORKED, KEY_MODEL}, KEY_ID + "=?",
                new String[]{String.valueOf(id)}, null, null, null, null);
        if (cursor != null)
            cursor.moveToFirst();

        Car car = new Car(Integer.parseInt(cursor.getString(0)),
                cursor.getString(1), cursor.getString(2),cursor.getString(3));
        // return contact
        return car;
    }

    public List<Car> getAllContacts() {
        List<Car> contactList = new ArrayList<Car>();
        // Select All Query
        String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        // looping through all rows and adding to list
        if (cursor.moveToFirst()) {
            do {
                Car car = new Car();
                car.setID(Integer.parseInt(cursor.getString(0)));
                car.setBrand(cursor.getString(1));
                car.setWorked(cursor.getString(2));
                car.setModel(cursor.getString(3));

                // Adding contact to list
                contactList.add(car);
            } while (cursor.moveToNext());
        }

        // return contact list
        return contactList;
    }

    public int getContactsCount() {
        String countQuery = "SELECT  * FROM " + TABLE_CONTACTS;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(countQuery, null);
        cursor.close();

        // return count
        return cursor.getCount();
    }



    public int updateContact(Car car) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(KEY_BRAND, car.getBrand());
        values.put(KEY_WORKED, car.getWorked());
        values.put(KEY_MODEL, car.getModel());

        // updating row
        return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
                new String[] { String.valueOf(car.getID()) });
    }


    public void deleteContact(Car contact) {
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
                new String[] { String.valueOf(contact.getID()) });
        db.close();
    }
}

        package com.example.t.newsqlite;

        import java.util.List;

        import android.app.Activity;
        import android.os.Bundle;
        import android.util.Log;
        import android.widget.TextView;

public class AndroidSQLiteTutorialActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        DatabaseHandler db = new DatabaseHandler(this);

        /**
         * CRUD Operations
         * */
        // Inserting Contacts
        Log.d("Insert: ", "Inserting ..");
        db.addContact(new Car("رنو","کارکرده","GGF"));
        db.addContact(new Car("تویوتا","صفر کیلومتر","FD"));
        db.addContact(new Car("بیوک", "حواله","GDG"));


        // Reading all contacts
        Log.d("Reading: ", "Reading all contacts..");
        List<Car> car = db.getAllContacts();

        for (Car cn : car) {
            String log = "Id: " + cn.getID() + " ,Brand: " + cn.getBrand() + " ,Worked: " + cn.getWorked() + " ,Model: " + cn.getModel();
            // Writing Contacts to log
            Log.d("Name: ", log);
        }
    }
}
package com.example.t.newsqlite;

public class Car {

    //private variables
    int id;
    String brand;
    String worked;
    String model;



    public Car(){

    }

    public Car(int id, String brand,String worked,String model){
        this.id = id;
        this.brand=brand;
        this.worked=worked;
        this.model=model;

    }

    // constructor
    public Car(String brand,String worked,String model){
        this.brand=brand;
        this.worked=worked;
        this.model=model;

    }

    public int getID(){
        return this.id;
    }


    public void setID(int id){
        this.id = id;
    }

    // getting name
    public String getBrand(){
        return this.brand;
    }

    // setting name
    public void setBrand(String brand){
        this.brand = brand;
    }

    // getting phone number
    public String getWorked(){
        return this.worked;
    }

    // setting phone number
    public void setWorked(String worked){
        this.worked = worked;
    }

    public String getModel(){
        return this.model;
    }


    public void setModel(String model){
        this.model = model;
    }
}

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

کدام فیلد مقدار null برمیگرداند.چونکه مشکلی نمیبینم از کدتون

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 1396/05/07, 11:05:26، b.kordtabar گفته است :

با سلام

می خواهم لیستی از داده ها را در پایگاه داده sqlite اندروید ذخیره کنم داده مربوط به ستون آخر نمایش داده نمی شود

کد مربوطه را ارسال می کنم، اگر می توانید راهنمایی کنید.


package com.example.t.newsqlite;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList;
import java.util.List;

public class DatabaseHandler extends SQLiteOpenHelper {


    private static final int DATABASE_VERSION = 1;


    private static final String DATABASE_NAME = "carManager";


    private static final String TABLE_CONTACTS = "cars";


    private static final String KEY_ID = "id";
    private static final String KEY_BRAND = "brand";
    private static final String KEY_WORKED = "worked";
    private static final String KEY_MODEL="model";

    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }


    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
                + KEY_ID + " INTEGER PRIMARY KEY," + KEY_BRAND + " TEXT,"
                + KEY_WORKED + " TEXT," + KEY_MODEL + " TEXT " + ")";
        db.execSQL(CREATE_CONTACTS_TABLE);
    }


    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);

        onCreate(db);
    }

    public void addContact(Car car) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(KEY_BRAND, car.getBrand());
        values.put(KEY_WORKED, car.getWorked());
        values.put(KEY_MODEL, car.getModel());
        db.insert(TABLE_CONTACTS, null, values);
        db.close();
    }


    public Car getContact(int id) {
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.query(TABLE_CONTACTS, new String[]{KEY_ID,
                        KEY_BRAND, KEY_WORKED, KEY_MODEL}, KEY_ID + "=?",
                new String[]{String.valueOf(id)}, null, null, null, null);
        if (cursor != null)
            cursor.moveToFirst();

        Car car = new Car(Integer.parseInt(cursor.getString(0)),
                cursor.getString(1), cursor.getString(2),cursor.getString(3));
        // return contact
        return car;
    }

    public List<Car> getAllContacts() {
        List<Car> contactList = new ArrayList<Car>();
        // Select All Query
        String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        // looping through all rows and adding to list
        if (cursor.moveToFirst()) {
            do {
                Car car = new Car();
                car.setID(Integer.parseInt(cursor.getString(0)));
                car.setBrand(cursor.getString(1));
                car.setWorked(cursor.getString(2));
                car.setModel(cursor.getString(3));

                // Adding contact to list
                contactList.add(car);
            } while (cursor.moveToNext());
        }

        // return contact list
        return contactList;
    }

    public int getContactsCount() {
        String countQuery = "SELECT  * FROM " + TABLE_CONTACTS;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(countQuery, null);
        cursor.close();

        // return count
        return cursor.getCount();
    }



    public int updateContact(Car car) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(KEY_BRAND, car.getBrand());
        values.put(KEY_WORKED, car.getWorked());
        values.put(KEY_MODEL, car.getModel());

        // updating row
        return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
                new String[] { String.valueOf(car.getID()) });
    }


    public void deleteContact(Car contact) {
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
                new String[] { String.valueOf(contact.getID()) });
        db.close();
    }
}


        package com.example.t.newsqlite;

        import java.util.List;

        import android.app.Activity;
        import android.os.Bundle;
        import android.util.Log;
        import android.widget.TextView;

public class AndroidSQLiteTutorialActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        DatabaseHandler db = new DatabaseHandler(this);

        /**
         * CRUD Operations
         * */
        // Inserting Contacts
        Log.d("Insert: ", "Inserting ..");
        db.addContact(new Car("رنو","کارکرده","GGF"));
        db.addContact(new Car("تویوتا","صفر کیلومتر","FD"));
        db.addContact(new Car("بیوک", "حواله","GDG"));


        // Reading all contacts
        Log.d("Reading: ", "Reading all contacts..");
        List<Car> car = db.getAllContacts();

        for (Car cn : car) {
            String log = "Id: " + cn.getID() + " ,Brand: " + cn.getBrand() + " ,Worked: " + cn.getWorked() + " ,Model: " + cn.getModel();
            // Writing Contacts to log
            Log.d("Name: ", log);
        }
    }
}

package com.example.t.newsqlite;

public class Car {

    //private variables
    int id;
    String brand;
    String worked;
    String model;



    public Car(){

    }

    public Car(int id, String brand,String worked,String model){
        this.id = id;
        this.brand=brand;
        this.worked=worked;
        this.model=model;

    }

    // constructor
    public Car(String brand,String worked,String model){
        this.brand=brand;
        this.worked=worked;
        this.model=model;

    }

    public int getID(){
        return this.id;
    }


    public void setID(int id){
        this.id = id;
    }

    // getting name
    public String getBrand(){
        return this.brand;
    }

    // setting name
    public void setBrand(String brand){
        this.brand = brand;
    }

    // getting phone number
    public String getWorked(){
        return this.worked;
    }

    // setting phone number
    public void setWorked(String worked){
        this.worked = worked;
    }

    public String getModel(){
        return this.model;
    }


    public void setModel(String model){
        this.model = model;
    }
}

 

سلام، توی متد زیر:

public void onCreate(SQLiteDatabase db) {
        String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
                + KEY_ID + " INTEGER PRIMARY KEY," + KEY_BRAND + " TEXT,"
                + KEY_WORKED + " TEXT," + KEY_MODEL + " TEXT " + ")";
        db.execSQL(CREATE_CONTACTS_TABLE);
    }

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

باید به شکل زیر نوشته بشه:

public void onCreate(SQLiteDatabase db) {
        String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
                + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_BRAND + " TEXT,"
                + KEY_WORKED + " TEXT," + KEY_MODEL + " TEXT " + ");";
        db.execSQL(CREATE_CONTACTS_TABLE);
    }

البته برای قسمت KEY_ID هم بد نیست یه AUTOINCREMENT اضافه کنید...

1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 1396/05/07, 14:30:54، Farzad Sarseifi گفته است :

کدام فیلد مقدار null برمیگرداند.چونکه مشکلی نمیبینم از کدتون

 

فیلد آخر MODEL

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط AVM
      سلام خدمت دوستان برنامه نویس 
      یه سوال داشتم که چه جوری میشه به یک جیمیل وصل شد و وقتی مثال یک جیمیل با متن تایید اومد برنامه فلان کار و بکنه
      یعنی اینکه وقتی یه جیمیل با محتوای تایید اومد مثال بره مرحله بعد
      لطفا کمک کنید واقعا گیرم ممنون میشم ازتون اگه این و برام حل کنید
      مرسی
    • توسط Tempp96
      با سلام دوستان من میخام برای لایوتم بک گروند بدم میام یه عکسی با حجم کمتر از 50 کیلو بایت میزارم ولی موقع اجرا میفته بیرون از برنامه میشه بگید مشکل چیه
    • توسط alidiod
      سلام 
      یک برنامه ساده اندرویدی نوشتم که مفاهیم هر یک از واژگان را تئضیح می دهد
      توضیح مفاهیم را در داخل یک فایل html در assets قرار دادم 
      چطوری می توانم در اپلیکشن موتور سرچی قرار دهم تا کلماتی را که کابرد می خواهد از داخل فایل بیرون بکشد و نشان دهد
      با تشکر
    • توسط hamed629
      دوستان چندین روز است که من درگیر این مشکل هستم من با کاتلین مینویسم :من دو تا آداپتور دارم که دوتا ریسایکلر ویوی من را پر میکنند چون دارم تست میزنم دو تا آداپتور مثل هم هستند با تفاوت اندکی، در قسمت ViewHolder های آداپتورها ، من تابع init دارم که داخلش setOnClickListenerهست که برای یک آداپتور روی عکس ها زدم و برای اون یکی روی تکست.....یک اکتیویتی دارم و یک فرگمنت حالا مشکل اینجاست که setOnClickListener آداپتور متصل به MainActivity وقتی کلیک میکنم روش کار میکنه ولی مال Fragment انگار pause شده .....لاگ گذاشتم قبل از setOnClickListener توی فرگمنت تا سر این تابع میاد ولی بعد انگار قفل میشه و هرچی کلیک میکنی تغییری حاصل نمیشه حالا جالب اینه که جای آداپتورهای فرگمنت و اکتیویتی را باهم عوض کردم و دیدم کار میکنه پس نتیجه اینکه کدها درست هستند ولی فرگمنت درست عمل نمیکنه خودم احساس میکنم که توی چرخه حیات،فرگمت وقتی منتظر کلیک کاربر میمونه پاز میشه و بعد از کلیک فعال نمیشه ولی اکتیویتی بقول خودمون گوش به زنگه ....من هم نمیدونم باید چکار کرد اگه دوستان راهی دارند لطف کنند که دیگه دارم کلافه میشم.ممنون
       
    • توسط kevin_anderson
      سلام دوستان.
      وقتی پروژه ی جدید و یک Activity ی جدید ایجاد میکنم override ی که بالای oncreate نوشته میشه روش خط میکشه و warning ای با عنوان java.lang.override is deprecated میاره...
      چطوری میتونم هندلش کنم؟
      ممنون میشم راهنمایی کنید.


  • دوره آموزشی اندروید آموزش ویدئویی اندروید سورس اندروید دوره اندروید آموزش Kotlin آموزش برنامه نویسی ios مهارت های فروش طراحی اپلیکیشن کوردینا موزیک Kurdina Music موزیک کردی Android Framework
  • فایل