首页 > 解决方案 > 无法在我的 android 应用程序中创建数据库

问题描述

我想用 SQLite 数据库创建一个应用程序,但我不知道为什么我不能创建数据库

class Db_Connection(context: Context?) : SQLiteOpenHelper(context,"my_db",null, 1) {

    override fun onCreate(p0: SQLiteDatabase?) {

        var create_Table =
            "Create Table product( id INTEGER PRIMARY KEY AUTOINCREMENT ,  name TEXT)"
        p0!!.execSQL(create_Table)
    }

    override fun onUpgrade(p0: SQLiteDatabase?, p1: Int, p2: Int) {
    }
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    Db_Connection(this)
}

标签: androidsqlitekotlin

解决方案


那么这是基于java的代码。希望它可以帮助你一点

创建一个数据库类并将其扩展为 SQLiteOpenHelper 类

public class DatabaseHelper extends SQLiteOpenHelper implements Constants {
private static final String dbname = "towers.db";
private static final int dbversion = 1;

public DatabaseHelper(Context context) {
    super(context, dbname, null, dbversion);
}

@Override
public void onCreate(SQLiteDatabase db) {
 //  String query = "CREATE TABLE TOWERS_TABLE (_id INTEGER PRIMARY KEY AUTOINICREMENT, CIRCLE TEXT, OPERATOR TEXT, NETWORK TEXT, CELLID TEXT, SIGNAL_STRENGTH TEXT)";
    String query =  "CREATE TABLE TOWERS (_id INTEGER PRIMARY KEY AUTOINICREMENT, DATA TEXT)";
    db.execSQL(query);

}

public void insertData(String data, SQLiteDatabase database){
    try {
        ContentValues values = new ContentValues();
        values.put("data",data);
        database.insert("TOWERS",null,values);
    }catch (SQLException e){
        e.printStackTrace();
    }

}

public void clearData(SQLiteDatabase db){
    String query = "DROP TABLE IF EXISTS TOWERS";
    db.execSQL(query);
}


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

}

现在创建一个要添加值的数据库类对象

    databaseHelper = new DatabaseHelper(context);
        database = databaseHelper.getWritableDatabase();
 databaseHelper.insertData(data,database); //Here data is the value that you want to store

推荐阅读