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 に答える