SQLite Open Helper создает пустую базу данных - PullRequest
0 голосов
/ 01 июня 2019

Мне очень жаль открывать вопрос, который был задан ранее, но я уже прочитал много ответов, попытался изменить свой код, чтобы исправить это, и я до сих пор не могу создать таблицы в своей базе данных SQLite.

Я также пытался удалить приложение и переустановить, удалил предыдущие файлы базы данных для замены, и выходные данные всегда одинаковы.

Это мой класс Open Helper:

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DataBaseClass extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "Dados.db";
    private static final int DATABASE_VERSION=1;

    private String primeiraquery = "create table Informacoes (Identificacao VARCHAR(255))";
    Context context;

    public DataBaseClass(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        this.context=context;
    }

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

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

Изменение запроса на добавление '' или отсутствие пробела между именем таблицы и () также привело к тому же выводу.

И это MainActivity.class

import android.content.Intent;
import android.database.Cursor;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.example.appname.DataBaseClasses.DataBaseClass;

public class MainActivity extends AppCompatActivity {

    DataBaseClass database;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        database=new DataBaseClass(this);
        createBasedados();
    }

    public void createBasedados(){
        database.getReadableDatabase();
    }
}

Нетнесмотря ни на что, я всегда получаю Dados.db с 4 КБ, и когда я его открываю, он пуст, таблицы не создаются.

Кроме этого, в папке баз данных также есть Dados.db-shm и Dados.db-wal

Я также попробовал DatabseHelper из Codebind, но снова вывод был всегда один и тот же, пустой файл без таблиц.

UPDATE ( 2019-06-01 17: 29: 24Z ):

@ CommonWares pointeузнаете, что

Вы копируете все файлы или просто копируете файл .db?Вам нужны все.

Я просто копировал файл .db.После копирования всех 3 я теперь могу видеть таблицы базы данных вместо пустого файла.

1 Ответ

0 голосов
/ 01 июня 2019

Пожалуйста, попробуйте это:

1.Может создать таблицу Informacoes нужен идентификатор первичного ключа

изменить VARCHAR (255) на varchar

изменить DATABASE_VERSION = 1;в DATABASE_VERSION = 2;

открытый класс DataBaseClass расширяет SQLiteOpenHelper {

private static final String DATABASE_NAME = "Dados.db";
private static final int DATABASE_VERSION=2;

private String primeiraquery = "create table Informacoes (_id integer primary key autoincrement,Identificacao varchar)";
Context context;

public DataBaseClass(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    this.context=context;
}

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

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

...