我的SQLite数据库遇到了一些问题。我的应用程序中有大约5个活动,但我只能通过一个活动访问它。 在这项活动中,我可以充分利用我的数据库并完成我想做的一切。
在其他活动中,我无法使用它。我得到一个空的DB。
当然,无论活动如何,我都使用相同的代码来访问我的数据库。
我使用自制类来访问从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();
正如我所说,它在我的一项活动中运作得很好,但在其他活动上却没有。
我在这里迷失了^^“。
答案 0 :(得分:0)
因此,简而言之,问题来自我的SQL语法。当你看到我花了多少时间时真的很令人沮丧。
感谢大家的时间。