0

私はAndroidアプリケーションの作成に取り組んでいます。データベースを作成するボタンを配置しましたが、同じボタンを 2 回押してデータベースを開こうとすると、エラーが発生します

「失敗 1 (テーブル リストは既に存在します)」

それはボタンのコードです:

public void onClick(View arg0) {
                // TODO Auto-generated method stub

                try{
                    SQLiteDatabase ldb = openOrCreateDatabase(dbName, Context.MODE_PRIVATE, null);
                    ldb.execSQL(TableStructure);
                    ContentValues cv = new ContentValues();
                    cv.put("task", text);
                    cv.put("checkbox", 1);
                    ldb.insert(tableName, null, cv);
                    ldb.close();
                }catch(Exception e){
                    Toast.makeText(List.this, "Failed", Toast.LENGTH_LONG).show();
                }

                    Intent in = new Intent(List.this, DsTest2Activity.class);
                    startActivity(in);

        }
4

1 に答える 1

1

コード全体を入れたわけではありませんが、テーブルを作成するための SQL 文が含まれてTableStructureいると思います。Stringエラーがすでにあなたに言っているように:

table List already exists

テーブルは、このメソッドの前回の実行によってすでに作成されています。

まず、DB が作成済みかどうかを確認し、作成されていない場合のみ作成 SQL 文を実行する必要があります。またはuser1810737 が正しく示唆しているようCREATE TABLE IF NOT EXISTSに、プレーンの代わりに使用しますCREATE TABLE

于 2012-11-22T12:00:56.457 に答える