2015-04-08 1 views
-1

** salut Je suis fatigué de la recherche et de l'examen de mon code s'il vous plaît aidez-moi! Je veux mettre à jour une ligne dans le tableau, je pense que la mise à jour parce que lorsque la valeur de spectacle avec (pain grillé) je vois la ligne mis à jour, mais quand je ferme l'activité et l'ouvrir valeur ne change paspourquoi sqlite ne pas mettre à jour la ligne

où est le code probles: **

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) { 
} 

}

et mon Code de mise à jour DataBaseHelper

public void set(){ 

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

     mDataBase.execSQL(sql); 

     close();     
} 

ou ceci:

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

    } 

Merci pour l'aide

Répondre

1

je modifier mon code ce travail est grâce

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

      db = this.getWritableDatabase(); 

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

Que faites-le créer? Si vous remplacez la même valeur encore et encore, ce sera le résultat.

+0

merci. mon activité principale est: final DataBaseHelper ada = new DataBaseHelper (a1.this); et sur créer dans databasehelper est vide j'appelle createDataBase(); – saeedcd

+0

Vous venez de dire mais je ne peux pas comprendre quel est le problème – saeedcd