首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android数据库更新

Android数据库更新
EN

Stack Overflow用户
提问于 2011-12-14 00:59:35
回答 2查看 350关注 0票数 0

在我的应用程序中,我将我的rss新闻存储在一个database.When中,用户通过互联网进入我的新闻活动,我调用createEnty();方法

代码语言:javascript
复制
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中)

代码语言:javascript
复制
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();

代码语言:javascript
复制
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我正在尝试这个,但是我得到一个空的数据库

代码语言:javascript
复制
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();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-14 01:07:13

我想你可以在网络连接动作上写delete * from script。

Delete *清除数据库中的条目,但不删除表。因此,在下一步操作中,您可以插入任何您想要的内容。

票数 0
EN

Stack Overflow用户

发布于 2011-12-14 01:11:28

将其添加到您的createEntry方法之上。

代码语言:javascript
复制
context.deleteDatabase(DB_NAME);

(context可以是你的活动)

它实际上删除了db文件。因此,下次执行getReadableDatabase() (或getWritableDatabase())时,将重新创建它。

编辑:类似于:

代码语言:javascript
复制
// Do that when an internet connection is found:
agones.this.deleteDatabase(DB_NAME);
HotOrNot entry = new HotOrNot(agones.this);
entry.open();
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8493074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档