PDA

View Full Version : خسته از sqlite



saeedcd
چهارشنبه 19 فروردین 1394, 10:48 صبح
سلام به همه اساتید
واقعا معذرت میخواهم بخاطر سوال بدم :افسرده: اما هرچی باهاش ور میرم مشکلشو نمیتونم پیدا کنم:عصبانی++:

من یه مقداری رو update میکنم update هم میشه!!!!!! اما وقتی دوباره تو یه اکتیویتی از دیتابیس میخونم میبینم مقادیر تغییر نکرده فکرکنم overwrite میشه اما نمیدونم کجاشو باید درست کنم
ممنون

DataBaseHelper:

public class DataBaseHelper extends SQLiteOpenHelper {

private static String DB_PATH = "";
private static String DB_NAME ="surbiks";
private final Context mContext;
private SQLiteDatabase mDataBase;


static final int DATABASE_VERSION = 2;

public DataBaseHelper(Context context) {
super(context, DB_NAME, null,DATABASE_VERSION );

this.mContext = context;
DB_PATH = "/data/data/" + context.getPackageName() + "/databases/";
createDataBase();
}



private void copyDataBase(){

try {

InputStream mInput = mContext.getAssets().open("db/images.db");
String outFileName = DB_PATH + DB_NAME;
OutputStream mOutput = new FileOutputStream(outFileName);
byte[] mBuffer = new byte[1024];
int mLength;
while ((mLength = mInput.read(mBuffer))>0){
mOutput.write(mBuffer, 0, mLength);
}
mOutput.flush();
mOutput.close();
mInput.close();

} catch (Exception e) {

}
}

public boolean open() throws SQLException
{

try {
String mPath = DB_PATH + DB_NAME;
mDataBase = SQLiteDatabase.openDatabase(mPath, null, SQLiteDatabase.CREATE_IF_NECESSARY);
db = this.getWritableDatabase();
mDataBase=this.getWritableDatabase();
return mDataBase != null;
} catch (Exception e) {
}
return false;
}

@Override
public synchronized void close()
{
if(mDataBase != null)
mDataBase.close();
super.close();
}

@Override
public void onCreate(SQLiteDatabase db) {
}



update

public void set( ){

open();
String sql="update item_body set fav='1' where id='1'";

mDataBase.execSQL(sql);

close();
}

یا

public boolean updateContact()
{
ContentValues args = new ContentValues();
open();
args.put("fav", "1");
return mDataBase.update("item_body", args, " id='1' " , null) > 0;

}

saeedcd
چهارشنبه 19 فروردین 1394, 12:20 عصر
فهمیدم

private void createDataBase()
{
try{
boolean mDataBaseExist = checkDataBase();
if(!mDataBaseExist)
{
//this.getReadableDatabase();
this.getWritableDatabase();

db = this.getWritableDatabase();

this.close();
copyDataBase();
}
}catch (Exception e) {
}
}


باید اینطور اصلاح میشد