0

我正在创建一个 Android 应用程序。我放了一个按钮来创建数据库,当我第二次尝试按下同一个按钮打开数据库时出现错误

“故障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

你没有把整个代码,但我假设TableStructureString用一个 SQL 语句来创建表。正如错误已经告诉你的那样:

table List already exists

表已由先前执行此方法创建。

您首先需要检查数据库是否已经创建,只有在没有创建时才执行创建 SQL 语句。或者正如user1810737正确建议的那样,使用CREATE TABLE IF NOT EXISTS而不是普通的CREATE TABLE

于 2012-11-22T12:00:56.457 回答