PDA

View Full Version : نمایش اطلاعات از دیتابیس



moh_sen201
چهارشنبه 30 مرداد 1392, 17:18 عصر
سلام به همه
میخام از دیتابیس با اسم DB-office و یک جدول به نام my_TB یک مقدار برگردونم.
شرطشم این باشه


select name from my_TB where id='10'


الان مثلا بهم اسم رو بده و من اون اسم رو تو یک Toast.makeText نمایش بدم.
کل کد هارو از اولش میخام!
حتا شرطمو...


ممنون

eai-eiliya
پنج شنبه 31 مرداد 1392, 09:50 صبح
سلام ، من خودم از چند تا منبع استفاده می کنم تا بهترین و ساده ترین و قابل فهم ترین سورس ها و کلاس هارو استفاده کنم
این کلاس DBAdapter هست که واسه یکی از پروژه های خودم ازش استفاده کردم ، با این کلاس میتونی دیتابیس رو ایجاد کنی ، جداول رو ایجاد کنی ، مقادیر جدید وارد دیتابیس کنی ، مقادیر قبلی رو بروز کنی و از هر شرط دلخواهی استفاده کنی

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

public class DBAdapter {
static final String KEY_ROWID = "_id";
static final String KEY_KOD = "kod";
static final String KEY_NAME = "name";
static final String KEY_PHONE = "phone";
static final String KEY_ADDRESS = "address";
static final String KEY_MORE = "more";
static final String TAG = "DBAdapter";

static final String DATABASE_NAME = "AmDB";
static final String DATABASE_TABLE = "contacts";
static final int DATABASE_VERSION = 2;

static final String DATABASE_CREATE =
"create table contacts (_id integer primary key autoincrement, "
+ "kod text not null,name text not null, phone text not null,address text not null,more text not null);";

final Context context;

DatabaseHelper DBHelper;
SQLiteDatabase db;

public DBAdapter(Context ctx)
{
this.context = ctx;
DBHelper = new DatabaseHelper(context);

}

private static class DatabaseHelper extends SQLiteOpenHelper
{
DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override
public void onCreate(SQLiteDatabase db)
{
try {
db.execSQL(DATABASE_CREATE);
} catch (SQLException e) {
e.printStackTrace();
}
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
Log.d(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS contacts");
onCreate(db);
}
}

//---opens the database---
public DBAdapter open() throws SQLException
{
db = DBHelper.getWritableDatabase();
return this;
}

//---closes the database---
public void close()
{
DBHelper.close();
}

//---insert a contact into the database---
public long insertContact(String kod,String name, String phone,String address,String more)
{
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_KOD, kod);
initialValues.put(KEY_NAME, name);
initialValues.put(KEY_PHONE, phone);
initialValues.put(KEY_ADDRESS, address);
initialValues.put(KEY_MORE, more);

return db.insert(DATABASE_TABLE, null, initialValues);
}

//---deletes a particular contact---
public boolean deleteContact(long rowId)
{
return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
}

//---retrieves all the contacts---
public Cursor getAllContacts()
{
return db.query(DATABASE_TABLE, new String[] {KEY_ROWID,KEY_KOD, KEY_NAME,
KEY_PHONE,KEY_ADDRESS,KEY_MORE}, null, null, null, null, null);
}

//---retrieves a particular contact---
public Cursor getContact(long rowId) throws SQLException
{
Cursor mCursor =
db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,KEY_KOD, KEY_NAME,
KEY_PHONE,KEY_ADDRESS,KEY_MORE}, KEY_ROWID + "=" + rowId, null,
null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}


//Search Contact
public Cursor searchContact(String searchText) throws SQLException
{

Cursor mCursor =db.rawQuery("SELECT * FROM "+DATABASE_TABLE+" WHERE "
+KEY_KOD+" LIKE '%"+ searchText + "%' OR "
+KEY_NAME+" LIKE '%"+ searchText + "%' OR "
+KEY_PHONE+" LIKE '%"+ searchText + "%';", null);

if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}

//---updates a contact---
public boolean updateContact(long rowId,String kod, String name, String phone,String address,String more)
{
ContentValues args = new ContentValues();
args.put(KEY_KOD, kod);
args.put(KEY_NAME, name);
args.put(KEY_PHONE, phone);
args.put(KEY_ADDRESS, address);
args.put(KEY_MORE, more);
return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;

}



}

moh_sen201
پنج شنبه 31 مرداد 1392, 11:48 صبح
واسه گرفتن اسمی که مثلا = علی هستش به شرطی که آی دیش فلان باشه؟
من دستورات اس کیو ال رو بلدم همشو
فقط نمیدونم تو اندروید چیکار کنم که یه فیلد با یه شرط بهم برگردونده بشه

moh_sen201
پنج شنبه 31 مرداد 1392, 16:57 عصر
کسی نبود؟ بچه ها خیلی ضروریه

hamyd_reza
پنج شنبه 31 مرداد 1392, 17:12 عصر
----------

moh_sen201
پنج شنبه 31 مرداد 1392, 20:21 عصر
دم هرچی بامرامه گرم

jafaripur
شنبه 02 شهریور 1392, 21:59 عصر
Cursor myCR = myDB.rawQuery("select name from my_TB where id=10", null);
if (myCR.moveToFirst())
String name = myCR.getString(myCR.getColumnIndex("name"));
برای استفاده از پارامتر برای مقابله با sql injection


String id = "10";
Cursor myCR = myDB.rawQuery("select name from my_TB where id=?", new String[]{ id });
if (myCR.moveToFirst())
String name = myCR.getString(myCR.getColumnIndex("name"));