**喜 我厌倦了搜索和查看我的代码 请帮我! 我想更新表中的一行,我认为更新因为当显示值与(toast)时我看到行更新但当我关闭活动并打开它时值不会改变
在哪里是问题代码:**
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) {
}
}
和我在DataBaseHelper中的更新代码
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;
}
感谢您的帮助
答案 0 :(得分:1)
我编辑我的代码 这是工作 感谢
private void createDataBase()
{
try{
boolean mDataBaseExist = checkDataBase();
if(!mDataBaseExist)
{
//this.getReadableDatabase();
this.getWritableDatabase();
db = this.getWritableDatabase();
this.close();
copyDataBase();
}
}catch (Exception e) {
}
}
答案 1 :(得分:-2)
你在创作时做什么?如果你反复覆盖相同的值,那将是结果。