在我的应用程序中,我将我的rss新闻存储在一个database.When中,用户通过互联网进入我的新闻活动,我调用createEnty();方法
HotOrNot entry = new HotOrNot(agones.this);
entry.open();
entry.createEntry(msg.getTitle(), msg.getagonistiki(), msg
.getskor(), msg.getgipedo(), msg.getDate(),msg.getgoal1(),msg.getgoal2(),msg.getDescription());
// entry.update(msg.getTitle(),msg.getagonistiki(),msg.getskor(),msg.getgipedo(),msg.getDate());
entry.close();(在HotOrNot中)
public void createEntry(String title, String getagonistiki, String getskor,
String getgipedo, String date, String getgoal1, String getgoal2, String teliko_skor) {
// TODO Auto-generated method stub
ContentValues cv=new ContentValues();
cv.put(DBHelper.TITLE, title);
cv.put(DBHelper.AGONISTIKI, getagonistiki);
cv.put(DBHelper.SKOR, getskor);
cv.put(DBHelper.GIPEDO, getgipedo);
cv.put(DBHelper.DATE, date);
cv.put(DBHelper.GOALA, getgoal1);
cv.put(DBHelper.GOALB, getgoal2);
cv.put(DBHelper.DESCRIPTION, teliko_skor);
try
{
ourDatabase.insert("osfpDB",null,cv);
} //ourDatabase.update("osfpDB",cv,DBHelper.ROWID,null);
catch(Exception e)
{
Log.e("DB ERROR ON .INSERT", e.toString()); // prints the error message to the log
e.printStackTrace(); // prints the stack trace to the log
}
}然后,当用户进入没有互联网的新闻活动时,我调用getData();
public Cursor getData()
{
String[] columns =new String[]{DBHelper.ROWID, DBHelper.TITLE , DBHelper.AGONISTIKI, DBHelper.SKOR, DBHelper.GIPEDO, DBHelper.DATE, DBHelper.GOALA, DBHelper.GOALB, DBHelper.DESCRIPTION };
Cursor c=ourDatabase.query(DBHelper.DATABASE_TABLE, columns, null, null, null, null, null);
return c;
}我的问题是,每当用户进入互联网连接的新闻活动时,数据库会从头开始重新写入所有数据。我的意思是,如果第一次有12条新闻,第二次有12条新闻,同样的12条新闻,应用程序会重写它们,而我的数据库中有24个条目,而不是我想要have.So的12个条目。我正在寻找一种方法,在用户每次连接到互联网时删除我的数据库并重新创建它,或者在每次time....PLease帮助时重写数据库,我已经在这里堆了好几天了……)
@Guillaume我正在尝试这个,但是我得到一个空的数据库
HotOrNot entry = new HotOrNot(agones.this);
agones.this.deleteDatabase(DBHelper.DATABASE_NAME);
entry.open();
entry.createEntry(msg.getTitle(), msg.getagonistiki(), msg
.getskor(), msg.getgipedo(), msg.getDate(),msg.getgoal1(),msg.getgoal2(),msg.getDescription());
// entry.update(msg.getTitle(),msg.getagonistiki(),msg.getskor(),msg.getgipedo(),msg.getDate());
entry.close();发布于 2011-12-14 01:07:13
我想你可以在网络连接动作上写delete * from script。
Delete *清除数据库中的条目,但不删除表。因此,在下一步操作中,您可以插入任何您想要的内容。
发布于 2011-12-14 01:11:28
将其添加到您的createEntry方法之上。
context.deleteDatabase(DB_NAME);(context可以是你的活动)
它实际上删除了db文件。因此,下次执行getReadableDatabase() (或getWritableDatabase())时,将重新创建它。
编辑:类似于:
// Do that when an internet connection is found:
agones.this.deleteDatabase(DB_NAME);
HotOrNot entry = new HotOrNot(agones.this);
entry.open();
...https://stackoverflow.com/questions/8493074
复制相似问题