- Forum-Beiträge: 2
17.03.2021, 12:05:22 via Website
17.03.2021 12:05:22 via Website
Hallo,
ich habe mit Android Studio begonnen Apps zu programmieren und scheitere jetzt leider bei der Einbindung einer bereits vorhandenen Datenbank. Sie besitzt nur eine Tabelle mit dem Namen "table1".
Ich habe sie in Android Studio im Ordner assets/databases platziert, beim Aufruf verschiedener Funktionen bekomme ich allerdings nur die Meldung im Logcat:
no such table: table1
Wo könnte mein Fehler liegen?
MainActivity
package com.dplusk.example_sql;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
DataBaseHelper dataBaseHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClickSearch(View view) {
dataBaseHelper = new DataBaseHelper(MainActivity.this);
try {
String post = dataBaseHelper.getPost("table1","Moser");
Toast.makeText(this,String.format("%s",post),Toast.LENGTH_SHORT).show();
}catch (Exception e){
Toast.makeText(this,"Error",Toast.LENGTH_SHORT).show();
}
}
public void onClickUpdate(View view) {
//Toast.makeText(MainActivity.this,"Saving successful",Toast.LENGTH_LONG).show();
}
public void onClickRows(View view) {
dataBaseHelper = new DataBaseHelper(MainActivity.this);
try {
long count = dataBaseHelper.numberOfRows("table1");
String message = String.format("%s",count);
Toast.makeText(MainActivity.this,message,Toast.LENGTH_LONG).show();
}catch (Exception e){
Toast.makeText(this,"Error",Toast.LENGTH_SHORT).show();
}
}
}
DataBaseHelper
package com.dplusk.example_sql;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
public class DataBaseHelper extends SQLiteOpenHelper {
public DataBaseHelper(@Nullable Context context) {
super(context, "database.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public String getPost(String table, String nameIn){
String queryString = "SELECT post FROM "+ table +" WHERE name = "+nameIn;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(queryString,null);
StringBuffer buffer = new StringBuffer();
while(cursor.moveToNext()){
String post = cursor.getString(0);
buffer.append(""+post);
}
cursor.close();
db.close();
return buffer.toString();
}
public long numberOfRows(String table){
String queryString = "SELECT * FROM " + table;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(queryString,null);
long count = cursor.getCount();
cursor.close();
db.close();
return count;
}
}
Ich hab nun das Problem gefunden, aus irgendeinem Grund wird unter data/data/package_name/databases eine neue leere Datenbank erstellt, statt meine existierende zu übernehmen, NUR WARUM????
Vielen Dank im Voraus für Eure Hilfe.
— geändert am 17.03.2021, 15:00:25
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.