Не удалось создать базу данных после того, как она была удалена - PullRequest
0 голосов
/ 10 марта 2011

Я занимаюсь программированием базы данных, и она работала нормально. Но после того, как я вызвал db.deleteTitle (1); Я не могу создать свою базу данных снова. c.moveToFirst () всегда возвращает ноль.

delButton.setOnClickListener(new OnClickListener(){
    @Override
     public void onClick(View v) {
     db.deleteTitle(1);}});

тогда есть еще одна функция для добавления данных в базу данных ini

private void saveDataInDB()
{
    try
    {
         db.open();      
             db.insertInDb
            (
                name.getText().toString(), mobileNumber.getText().toString()                    
            );              

          Cursor c = db.getTitle(1);
          if (c.moveToFirst())        
                DisplayToast(c);
           else
           {
                Toast.makeText(this, "No title found", **I should not get this :(**
                        Toast.LENGTH_LONG).show();
           }

            db.close();
    }
    catch (Exception e)
    {
        Log.e("Save Error", e.toString());
        e.printStackTrace();
    }
}

Я не знаю, почему на этот раз он терпит неудачу, хотя раньше он работал хорошо. Пожалуйста, руководство. Спасибо, Шаист

Ответы [ 2 ]

1 голос
/ 10 марта 2011

Вы можете удалить свою базу данных вручную с помощью инструмента adb или увеличить номер версии базы данных (если ваш код похож на приложение «Блокнот»), который в следующий раз снова запустит код создания базы данныхВы открываете его.

- EDIT - Код помощника базы данных -

    private static class DatabaseHelper extends SQLiteOpenHelper {
    DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(DATABASE_CREATE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS random_table");
        onCreate(db);
    }
}

Это класс помощника базы данных, который я использую.То же самое, что вы видите в учебнике по Android Notepad.Увеличьте число DATABASE_VERSION (скажем, от 1 до 2), если структура вашей таблицы изменится.Будет вызван onUpgrade , который удалит старую версию и затем снова запустит onCreate , чтобы создать новую таблицу / таблицы.

0 голосов
/ 10 марта 2011

Если вы удаляете базу данных, вам необходимо создать ее заново, прежде чем вы сможете получить к ней доступ.Вы должны повторно запустить операторы создания базы данных, в противном случае, насколько известно вашему приложению, эта база данных больше не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...