gpt4 book ai didi

android - 为什么我不能在我的 Android 应用程序中创建 SQLite 数据库

转载 作者:搜寻专家 更新时间:2023-10-30 22:15:16 26 4
gpt4 key购买 nike

您好,我的 Android 应用程序有问题。我想为我的应用程序使用 sqlite 数据库,并且我有一项 Activity 使用 onCreate()onPause()onResume() 方法.我已经构建了一个类 DatenbankManager,它创建了一个表 ID 和名称,但是如果我使用模拟器启动我的应用程序,我会收到一条消息,然后我的应用程序将关闭。

这里是我的 DatenbankManager 类:

package de.tarasov.database_example_tarasov;

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

public class DatenbankManager extends SQLiteOpenHelper {

private static final String DB_Name = "Stundenplanname.db";
private static final int DB_VERSION = 1;
private static final String KLASSEN_CREATE = "CREATE TABLE Stundenplan(" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT, "+
"name TEXT NOT NULL";
private static final String KLASSEN_DROP = "DROP TABLE IF EXIST Stundenplan";

//Konstruktor
public DatenbankManager(Context context) {
super(context, DB_Name, null, DB_VERSION);

}

//Methode wenn eine Datenbank erstellt werden muss
@Override
public void onCreate(SQLiteDatabase db) {

db.execSQL(KLASSEN_CREATE);
}

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

db.execSQL(KLASSEN_DROP); // Löscht Tabelle wenn nicht vorhanden
onCreate(db); //Erstellt Tabelle
}

}

这里是我的 MainActivity:

package de.tarasov.database_example_tarasov;

import android.os.Bundle;
import android.widget.Toast;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;

public class MainActivity extends Activity {

private SQLiteDatabase mDatenbank;
private DatenbankManager mHelper;

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mHelper = new DatenbankManager(this);
}

@Override
protected void onPause() {
super.onPause();
mDatenbank.close(); //Schließt Datenbank

Toast.makeText(this,
getResources().getString(R.string.db_close),
Toast.LENGTH_SHORT).show();
}

@Override
protected void onResume() {
super.onResume();
mDatenbank = mHelper.getReadableDatabase(); //Datenbank öffnen

//Gibt Kurztext aus
Toast.makeText(this,
getResources().getString(R.string.db_open),
Toast.LENGTH_SHORT).show();
}

}

这是错误信息:

enter image description here

如果我进行调试,我会看到:

Source not found. 

在 LogCat 中我看到了这个:

enter image description here

我讨厌这个调试器 :D

最佳答案

您在创建表语句中忘记了 ):

private static final String KLASSEN_CREATE = "CREATE TABLE Stundenplan(" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT, "+
"name TEXT NOT NULL);";

关于android - 为什么我不能在我的 Android 应用程序中创建 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14182870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com