0
我正在面對我的SQLite數據庫的一些問題。我的應用程序中有大約5個活動,但我只能從一個活動訪問它。 在這個活動中,我可以充分使用我的數據庫,並盡我所能。[Android] SQLite數據庫無法從其他活動訪問
關於其他活動,我不能使用它。我得到一個空的數據庫。
當然,我使用相同的代碼來訪問我的數據庫,而不管活動。
我使用自制類來訪問從SQLiteOpenHelper派生的數據庫,並使用另一個類來操作第一個類。數據庫從在線服務器下載到「/data/data/com.example.btc_pe/databases/」文件夾中。
我的第一堂課,訪問數據庫。
public final class BtcDb extends SQLiteOpenHelper
{
public BtcDb(Context context, String name, CursorFactory factory, int version)
{
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db)
{
// TODO Auto-generated method stub
Log.d("BTC","Db created");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
// TODO Auto-generated method stub
//db.execSQL("DROP TABLE "+ TABLE_PRODUITS +";");
//onCreate(db);
}
}
而我的操作類:
public final class DbHelper
{
public static int version=1;
private static final String nomDb="basesqlite.db";
private int num_id=0;
private int num_tension=1;
private int num_typeRacc=2;
private int num_nbCond=3;
private int num_technique=4;
private int num_typeConn=5;
private int num_conn=6;
private int num_desiConn=7;
private int num_refProd=8;
private int num_desiProd=9;
private int num_diamMin=10;
private int num_diamMax=11;
private int num_section=12;
private int num_diamConnMax1=13;
private int num_diamConnMax2=14;
private int num_diamConnMax3=15;
private int num_diamConnMax4=16;
private int num_diamConnMax5=17;
private String tableProduits = "produit";
private SQLiteDatabase bdd;
private BtcDb btcDb1;
public DbHelper(Context context)
{
btcDb1=new BtcDb(context,nomDb,null,version);
}
public void open()
{
bdd=btcDb1.getReadableDatabase();
}
public void close()
{
bdd.close();
}
public SQLiteDatabase getBdd()
{
return bdd;
}
public int getCountDb()
{
Cursor c = bdd.rawQuery("SELECT COUNT(*) FROM"+ tableProduits, null);
return cursorToCount(c);
}
public int cursorToCount(Cursor c)
{
c.moveToFirst();
int i=c.getInt(0);
return i;
}
}
在我的活動,我一定要實例化的DBHelper類,實例化BtcDB。 因此,所有我應該做的是這樣的:
DBHelper dbHelper1 = new DBHelper(this);
dbHelper1.open();
//Manipulation of the DB
int i=dbHelper1.getCountDB(); //In example...
Log.d("BTC","DB Count : "+i);
//Other manipulations of the DB.
dbHelper1.closer();
正如我所說的,它工作得很好,在我的活動之一,但不是在其他人。
我敢在這裏失去了^^」。
任何錯誤日誌?也許缺少From'關鍵字後'一個空間? – Kedarnath
請添加錯誤日誌 –
添加日誌貓錯誤 – IPL10