0

当我编译应用程序时,这些错误显示:

   sqlite returned: error code = 1, msg = table mensagens already exists
   Failure 1 (table mensagens already exists) on 0x240328 when preparing 'create table mensagens(mensagemsalva varchar(250),mensagemenviada varchar(250))'.
   sqlite returned: error code = 1, msg = table contatos already exists
   Failure 1 (table contatos already exists) on 0x240328 when preparing 'create table contatos(nome varchar(50),telefone varchar(20))'.

我的 Main.java 有这段代码,用于创建数据库及其表:

  onCreate(..){
   ...
  db = openOrCreateDatabase("banco.db", Context.MODE_WORLD_WRITEABLE, null);
    ...
    VerificaDados();
  }

    private void VerificaDados() {
    // TODO Auto-generated method stub

    try {
        //cria uma TABLE de nome MENSAGENS
        db.execSQL("create table mensagens(mensagemsalva varchar(250),mensagemenviada varchar(250))");
        //ShowMessage("Banco","Criou a tabela de mensagens");
    }
    catch (Exception e) {

        }
    try{
        //cria uma TABLE de nome CONTATOS
        db.execSQL("create table contatos(nome varchar(50),telefone varchar(20))");
        //ShowMessage("Banco","Criou a tabela de contatos");
    }catch (Exception a){

    }

}

我知道它可能是什么,因为我只是运行应用程序和 BAM,LogCat 中的错误。

4

2 回答 2

1

查看SQLiteOpenHelper API 文档。

此类负责打开数据库(如果存在),如果不存在则创建它,并根据需要进行升级。

您应该尝试区分onCreate()onUpdate()

于 2012-09-25T19:22:10.107 回答
0

只需评论 (//)VerificaDados();因为表已经创建。

onCreate(..){
    ...
 db = openOrCreateDatabase("banco.db", Context.MODE_WORLD_WRITEABLE, null);
    ...
   //VerificaDados();
   }
于 2012-09-26T17:53:13.267 回答