PDA

View Full Version : کار با database در android



ahmad1990
شنبه 30 مهر 1390, 15:52 عصر
سلام دوستان،
کسی با database تو android کار کرده ؟
میدونه چجوری میشه با یه database که خودمون ساختیم ارتباط برقرار کنیم و ازش اطلاعات رو بخونیم؟

powerboy2988
شنبه 30 مهر 1390, 16:28 عصر
سلام
واسه کار تو دیتابیس شما از دیتابیس Sqlite استفاده می کنی ..
دیتابیسی که شما ساختی رو تو sdCard خود گوشی می ریزی ... بعدش واسه قسمت write ( همون insert) شما باید به برنامه Permission بدی که تو قسمت manifest برنامه کد زیر رو میدی


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


حالا فرض می کنیم که شما دیتابیس رو تو sdcard/mydatabase/ قرار دادی و اسم دیتابیس هم myDataBase.db هستش... با استفاده از کلاس زیر می تونی بهش دسترسی داشته باشی..



import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.widget.Toast;

public class BuyerDBAdapter {

private static final String DATABASE_TABLE = "Buyer";
private Context context;
private SQLiteDatabase database;
private String myPath = "//sdcard//MyDataBase//myDataBase.db";
public static final String KEY_ROWID = "_id";
public static final String KEY_BUYER_CODE = "BuyerCode";
public static final String KEY_BUYER_ADDRESS = "AddB";
public static final String KEY_BUYER_TABLO = "Tblo";
public static final String KEY_BUYER_PHONE = "Tel";
public static final String KEY_BUYER_Name = "Name";
public static final String KEY_BUYER_ATBAR = "Atbar";
public static final String KEY_BUYER_GHK = "Ghk";

public BuyerDBAdapter(Context context) {
this.context = context;
// TODO Auto-generated constructor stub
}

public BuyerDBAdapter open() throws SQLException {

database = SQLiteDatabase.openDatabase(myPath, null,
SQLiteDatabase.NO_LOCALIZED_COLLATORS | SQLiteDatabase.OPEN_READWRITE);


return this;
}

/**
* Return a Cursor over the list of all user in the database
*
* @return Cursor over all users
*/
public Cursor fetchAllBuyer(){

return database.query(DATABASE_TABLE, new String[] { KEY_BUYER_CODE,KEY_BUYER_Name,KEY_BUYER_TABLO}, null, null, null, null, null);
}

public Cursor fetchQuery(String buyerCode) {
Cursor mCursor = database.query(true, DATABASE_TABLE, new String[] {
KEY_BUYER_ADDRESS, KEY_BUYER_PHONE, KEY_BUYER_ATBAR,KEY_BUYER_CODE,KEY_BUYER_Name,KEY_ BUYER_GHK},
KEY_BUYER_CODE + " like " + "\'" + buyerCode + "\'", null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;

}

}



بعدش تو برنامه یک object از این کلاس میگیری و اول اونو open می کنی و بعد از متد های اون استفاده می کنی..

موفق باشی

ahmad1990
دوشنبه 02 آبان 1390, 10:58 صبح
مرسی ممنون...
اما این خط منظورت چی بوده؟
private DataBaseHelperR dbHelper
خودم باس کلاسشو درست کنم؟

powerboy2988
دوشنبه 02 آبان 1390, 11:22 صبح
شرمنده... این کد اضافیه.... درست کردم کد رو تو همون پست اول

ahmad1990
دوشنبه 02 آبان 1390, 11:52 صبح
ok...
mer30...

hamedjj
سه شنبه 29 مرداد 1392, 12:33 عصر
با سلام به همه اساتید محترم
من یه متنی دارم و می خوام با کلید بر روی یک دکمه به صفحه ای دیگر برود و آن متن را نشان دهد.
اول اینکه این متن را چگونه در دیتابیس قرار دهم ... از طریق برنامه های مدیریت همچون sqlite expert در خود table باید بنویسم؟؟

دوم اینکه کد نشان دادن متن در آن صفحه را لطفا توضیح دهید.

خواهش می کنم جواب را کامل دهید که گیج نشم (اگر در تاپیکی جواب این سوال هست آدرس را بزارید)
واقعا از همتون ممنونم...
منتظرم

rzrajaie
شنبه 30 شهریور 1392, 16:26 عصر
سلام دوست عزیز نیازی به استفاده از دیتابیس نداری که شما باید برا هر صفحه یه کلاس و یه فایل xml بسازی بعد اگر رو دکمه کلیک کردی لینک بشه به او کلاس جدید اون کلاس هم xml جدیدو نشون میده ...

abbasalim
جمعه 05 مهر 1392, 08:22 صبح
http://p30download.com/fa/entry/44523/