SQLite DB insert nicht möglich

  • Antworten:4
sebastian schulz
  • Forum-Beiträge: 6

02.10.2018, 22:53:37 via Website

allo Leute,

probiere mich momentan in der App-Entwicklung aus, was derzeit auch gut funktioniert, nur sehe ich leider den Wald vor lauter Bäumen nicht. Ich bekomme keine SQLite DB-Verbindung hin.

Hierzu arbeite ich mit dem SQLiteOpenHelper,

habe auch mittlerweile auch schon 3 Stunden gegoogelt, und leider führt nichts zu meinem Ergebnis. Ich bekomme es hin die DB zu öffnen, zu schließen, leider scheitert es mir danach an jedem Versuch etwas zu inserten etc.

Kann mir jemand mal ein vernünftigen Link zu SQLite geben? oder mir sagen wie ich etwas in die DB hinzufügen kann und dann entweder als singel-row oder alle Datensätze anzeigen kann?

Ich finde einfach gerade kein vernüfntigen Ansatz

— geändert am 03.10.2018, 00:00:45 durch Moderator

Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

02.10.2018, 23:18:10 via Website

Hallo Sebastian,

Herzlich wilkommen hier im Forum :)

Zuerstmal brauchst du so ein Ähnliches konstrukt: https://www.codeproject.com/Articles/1031191/Android-SQLite-for-Beginners

Und in die Helper Klasse würde ich dnn alles reinbauen, was mit DB abfrage ind Cursor zutun hat:
https://www.androidhive.info/2011/11/android-sqlite-database-tutorial/

damit dir die Helper Klasse dir deine passenden Objeke liefert.

— geändert am 02.10.2018, 23:18:26

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
vijaydevelopersebastian schulz
Kommentieren
sebastian schulz
  • Forum-Beiträge: 6

03.10.2018, 21:50:55 via Website

Erstmal vielen Dank funktioniert mit dem Insert soweit leider habe ich trotzdem fragen

Dies ist meine Methode für einzelen Datensatz zurückgeben, leider bekomme ich direkt ein runtimeerror:

public String gebeEinzel(int id) {
// get readable database as we are not inserting anything
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_Name,
        new String[]{ Spalte_2},
        Spalte_1 + "=?",
        new String[]{String.valueOf(id)}, null, null, null, null);
if (cursor != null)
    cursor.moveToFirst();
String rueckgabe = new String(cursor.getString(cursor.getColumnIndex(Spalte_2)));
cursor.close();
return rueckgabe;

}

Denke das es bei dem Cursor liegt:

    String rueckgabe = new String(cursor.getString(cursor.getColumnIndex(Spalte_2)));

Und noch eine Frage, wie muss ich es machen, wenn ich mir alle Datensätze anzeigen lassen will, bzw alle haben will aber das ganze mit einem Order by

new String[]{String.valueOf(id)}, Grpupby null, having null, Spaltenname + " desc/asc", Limit setzen);

und kann ich hierzu dann die gleiche Methode verweden, nur ohne ID? wenn ich das Limit auf 1 setze?

— geändert am 03.10.2018, 21:58:37

Hilfreich?
Kommentieren
Gelöschter Account
  • Forum-Beiträge: 79

04.10.2018, 21:08:17 via Website

Moin Sebastian,

das ich zuletzt SQLite benutzt habe ist leider schon ein wenig her, aber vllt kann ich ja trotzdem helfen. Ich hoffe einfach, dass ich nicht total daneben liege. ^^

Du vergleichst in deinem db.query Spalte_1 mit etwas, aber das Ergebnis soll nur Spalte_2 enthalten. Ich habe irgendwie in Erinnerung, dass sowas nicht funktioniert. Probier mal aus, ob es funktioniert, wenn du das erste StringArray das änderst:

String[]{Spalte_1, Spalte_2}

Zu der zweiten Frage: In deinem Code steht etwas von "desc/asc". DESC wäre ja absteigende Reihenfolge und ASC wäre aufsteigende Reihenfolge, was "DESC/ASC" macht, weiß ich nicht, aber vllt ist das das Problem.

Ich habe damals nie die .query, sondern immer die .rawQuery benutzt. In dem Beispiel-Link, den Pascal gepostet hatte, wird das bei "getAllNotes()" verwendet. Es ist vielleicht nicht die elegenteste Art, aber ich fand es immer angenehmer, einfach direkt meinen SQL-Query einzutippen anstatt mir irgendwelchen Kram für die ".query"-Funktion zusammenzubauen. :-)

Hilfreich?
Kommentieren
vijaydeveloper
  • Forum-Beiträge: 4

22.02.2019, 04:50:54 via Website

This is the best recommendations, it works to me as well.

Hilfreich?
Kommentieren