Kazem Forghani 2,927 ارسال شده در 12 مرداد، ۱۳۹۵ اشتراک گذاری ارسال شده در 12 مرداد، ۱۳۹۵ سلام ، در حال نوشتن برنامه ای هستم سوال زیاد می پرسم. می خوام از دیتابیس Sqlite در برنامه استفاده می کنم. آموزش آقای شاهدی رو دنبال کردم اما ارور می ده! دوستان اگر روش دیگه ای می شناسید لطفاً بیان کنید. با تشکر لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Kazem Forghani 2,927 ارسال شده در 12 مرداد، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 12 مرداد، ۱۳۹۵ سلام ، تو Stackoverflow جستجو کردم و به نتیجه رسیدم! برنامه رو که قبلا روی شبیه ساز نصب شده بود پاک کردم و و از داخل پروژه هم فایل دیتابیس رو حذف کردم. بعد دوباره دیتابیس رو توی پوشه assets کپی کردم و از پروژه ران گرفتم ، بدون هیچ مشکلی اجرا شد و رکورد ها هم نشون داده شد. http://stackoverflow.com/questions/32939748/sqliteassethelper-no-such-table-error موفق و مؤید باشید لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مجید آرتا 5,874 ارسال شده در 12 مرداد، ۱۳۹۵ اشتراک گذاری ارسال شده در 12 مرداد، ۱۳۹۵ سلام من از SQLiteOpenHelper استفاده کردم و می تونید فایل دیتابیس رو هر کجای حافظه که هستش استفاده کنید package com.taakapps.arta.noteapp; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.DatabaseUtils; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import java.util.ArrayList; public class DBHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = G.DIR_DATABASE + "information.sqlite"; public DBHelper(Context context, String table) { super(context, DATABASE_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase db) { /* // TODO Auto-generated method stub db.execSQL( "create table contacts " + "(id integer primary key, name text,phone text,email text, street text,place text)" ); */ } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { /* // TODO Auto-generated method stub db.execSQL("DROP TABLE IF EXISTS contacts"); onCreate(db); */ } public boolean insertData(String tableName,ContentValues contentValues ) { SQLiteDatabase db = this.getWritableDatabase(); /* ContentValues contentValues = new ContentValues(); contentValues.put("name", name); contentValues.put("family", family); contentValues.put("desc", desc); */ db.insert(tableName, null, contentValues); return true; } public Cursor getDataOfId(String tableName ,int id) { SQLiteDatabase db = this.getReadableDatabase(); Cursor res = db.rawQuery("SELECT * FROM " + tableName + " WHERE id=" + id + "", null); return res; } public int numberOfRows() { SQLiteDatabase db = this.getReadableDatabase(); int numRows = (int) DatabaseUtils.queryNumEntries(db, CONTACTS_TABLE_NAME); return numRows; } public boolean updateContact(Integer id, String name, String family, String desc) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("name", name); contentValues.put("family", family); contentValues.put("desc", desc); db.update(mTable, contentValues, "id = ? ", new String[]{Integer.toString(id)}); return true; } public Integer deleteDataOfId(String tableName,Integer id) { SQLiteDatabase db = this.getWritableDatabase(); return db.delete(tableName, "id = ? ", new String[]{Integer.toString(id)}); } public Cursor getAllRecords(String tableName) { SQLiteDatabase db = this.getReadableDatabase(); Cursor res = db.rawQuery("SELECT * FROM " + tableName, null); return res; } } فقط اگر خودتون دیتابیسی رو با داده های خودتون دارید و یا اصلا دیتابیستون رو خودتون از قبل ساختید بهتره که رویداد OnCreate رو چیزی ننویسید. توابعی که نوشته شده سفارشی هستش و خودتون می تونید بسته به نیازتون تعریف کنید و استفاده کنید. مثال » DBHelper dbHelper = new DBHelper(getContext(),"notes"); G.notes = new ArrayList<StructNote>(); Cursor c; c = dbHelper.getAllRecords("notes"); c.moveToFirst(); while(!c.isAfterLast()){ StructNote structNote = new StructNote(); structNote.title = c.getString(c.getColumnIndex("title")); structNote.date = c.getString(c.getColumnIndex("date")); structNote.text = c.getString(c.getColumnIndex("text")); G.notes.add(structNote); } c.close(); اطلاعات رو از دیتابیس میگیره و داخل یک ارایه از نوع StructNote قرار میده. کلاس DBHelper رو می تونید پارامتر هایی که هستش رو خودتون تغییر بدید و بسته به نیازتون استفاده کنید. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Kazem Forghani 2,927 ارسال شده در 12 مرداد، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 12 مرداد، ۱۳۹۵ سلام ، خیلی ممنون ، متوجه شدم. من دیتابیس خودم رو از قبل در نویکت طراحی کردم. چطوری باید به متغیر DATABASE_NAME آدرس فایل رو بدم؟ ( فایل در Assets/databases/name.db هست. ) با تشکر. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
امین شاهدی 5,773 ارسال شده در 12 مرداد، ۱۳۹۵ اشتراک گذاری ارسال شده در 12 مرداد، ۱۳۹۵ سلام ، در حال نوشتن برنامه ای هستم سوال زیاد می پرسم. می خوام از دیتابیس Sqlite در برنامه استفاده می کنم. آموزش آقای شاهدی رو دنبال کردم اما ارور می ده! دوستان اگر روش دیگه ای می شناسید لطفاً بیان کنید. با تشکر میتونید بگید چه اروری میده ؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Kazem Forghani 2,927 ارسال شده در 12 مرداد، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 12 مرداد، ۱۳۹۵ میتونید بگید چه اروری میده ؟ سلام ، صبر کنید دوباره امتحان کنم ارور رو گزارش می دم. با تشکر... لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Kazem Forghani 2,927 ارسال شده در 12 مرداد، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 12 مرداد، ۱۳۹۵ سلام ، من با استفاده از متد getListOfRow لیستی از یک ستون رو می گیرم و اون رو در لیست ویو خودم نشون می دم. CustomArrayAdapter adapter = new CustomArrayAdapter(this, R.layout.item_layout, database.getListOfRow("SELECT * FROM tbl", "Text")); ارور no such table: tbl در لاگ نشون داده می شه ، در حالی که من در دیتابیس خودم جدولی تحت عنوان tbl دارم. دیتابیس رو هم در پوشه assets و در زیر شاخه databases قرار دادم. نام دیتابیس مربوطه رو هم به درستی در کلاس MyDatabase وارد کردم. از وجود ستون Text در دیتابیس هم مطمئن هستم. با تشکر فراوان لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
امین شاهدی 5,773 ارسال شده در 12 مرداد، ۱۳۹۵ اشتراک گذاری ارسال شده در 12 مرداد، ۱۳۹۵ دقت کنید پوشه Assets رو درست ساخته باشین و توی پوشه res نرفته باشه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Kazem Forghani 2,927 ارسال شده در 12 مرداد، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 12 مرداد، ۱۳۹۵ دقت کنید پوشه Assets رو درست ساخته باشین و توی پوشه res نرفته باشه سلام ، خیر پوشه assets دقیقا جایی که باید قرار گرفته باشه هست: لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
امین شاهدی 5,773 ارسال شده در 12 مرداد، ۱۳۹۵ اشتراک گذاری ارسال شده در 12 مرداد، ۱۳۹۵ سلام ، خیر پوشه assets دقیقا جایی که باید قرار گرفته باشه هست: بله درسته پس ممکنه مشکل دیتابیس و یا دادن اطلاعات اشتباه باشه ، چون من هم زمانی که برای اولین بار توی اندروید استودیو خواستم از دیتابیس استفاده کنم از Helper های مختلفی استفاده کردم و مشکل شمارو داشتم حتی تاپیک هم زدم ولی مشکل حل نشد http://stackoverflow.com/questions/33450950/sqlite-database-error-no-such-table/33452404#33452404 آخرش خودم کتابخونه رو پیدا کردم از github که خیلی خوب بود و آموزنشش و گذاشتم و همه هم استفاده میکنن و مشکلی نداشته لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Kazem Forghani 2,927 ارسال شده در 12 مرداد، ۱۳۹۵ سازنده اشتراک گذاری ارسال شده در 12 مرداد، ۱۳۹۵ بله درسته پس ممکنه مشکل دیتابیس و یا دادن اطلاعات اشتباه باشه ، چون من هم زمانی که برای اولین بار توی اندروید استودیو خواستم از دیتابیس استفاده کنم از Helper های مختلفی استفاده کردم و مشکل شمارو داشتم حتی تاپیک هم زدم ولی مشکل حل نشد http://stackoverflow.com/questions/33450950/sqlite-database-error-no-such-table/33452404#33452404 آخرش خودم کتابخونه رو پیدا کردم از github که خیلی خوب بود و آموزنشش و گذاشتم و همه هم استفاده میکنن و مشکلی نداشته بنده هم از همین کتابخانه ای که معرفی کردید استفاده می کنم ، اما مشکل ممکنه از کجا باشه؟! منظورتون از این قسمت چیه؟ : بله درسته پس ممکنه مشکل دیتابیس و یا دادن اطلاعات اشتباه باشه ، لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
Kazem Forghani 2,927
سلام ،
در حال نوشتن برنامه ای هستم سوال زیاد می پرسم.
می خوام از دیتابیس Sqlite در برنامه استفاده می کنم. آموزش آقای شاهدی رو دنبال کردم اما ارور می ده!
دوستان اگر روش دیگه ای می شناسید لطفاً بیان کنید.
با تشکر
لینک ارسال
به اشتراک گذاری در سایت های دیگر
10 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.