Я пытаюсь создать новую таблицу, используя exe cSQL () класса SQLiteDatabase в ранее созданной базе данных, и я хочу сохранить информацию из моей предыдущей базы данных. Но мое приложение вылетает сразу после установки на мой телефон. Я предоставляю свои коды java, и не имеет значения, какой код xml вы используете для MainActivity. java.
My MainActivity. java код:
package com.example.secondtabletodatabase;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
DatabaseHelper myDb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myDb = new DatabaseHelper(this);
myDb.createNewTable("xyz");
}
}
My DatabaseHelper. java код:
package com.example.secondtabletodatabase;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "Student.db";
public static final String TABLE_NAME = "student_table";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,SURNAME TEXT,MARKS INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
onCreate(db);
}
public void createNewTable(String table_name) {
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL("create table if not exists " + table_name +" (i INTEGER PRIMARY KEY AUTOINCREMENT,X TEXT,Y TEXT");
}
}