打开Android数据库时出错

时间:2012-11-22 11:56:58

标签: android sqlite

我正致力于创建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);

        }

1 个答案:

答案 0 :(得分:1)

您没有放入整个代码,但我认为TableStructure是一个带有SQL语句的String来创建表。由于错误已经告诉你:

table List already exists

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

首先需要检查数据库是否已创建,并且仅在未创建时才执行创建SQL语句。或者正如 user1810737 正确建议的那样,使用CREATE TABLE IF NOT EXISTS代替普通CREATE TABLE