SQLite rawquery

  • Hallo,


    ich bekomme aus meiner Datenbasis keine Informationen.
    Ich würde gerne mit rawquery eine spezielle Zelle abfragen.
    Meine Datenbasis hat folgende Struktur:


    id 0 1 2 3 4 5 ...
    0
    1
    2
    3
    4
    5


    Meine Query lautet wie folgt:

    Code
    meineDB.rawQuery("SELECT '" + column + "' FROM " + table + " WHERE id='" + row + "'", null)


    Warum bekomme ich hier nix zurück?
    Ich habe es mit und ohne Anführungszeichen probiert, jedoch ohne Erfolg...

  • Aus dem Schnipsel kann man das nicht beantworten.


    Die Struktur der Query ist bis auf die Anführungszeichen soweit in Ordnung, die erste Frage wäre dann, was in den Variablen "column" und "table" steht.


    Am Beispiel:


    Wenn deine Tabelle die Form


    create table tbl (id integer, c1 integer, c2 integer);


    hat, dann würde


    select c1 from tbl where id=3;


    die zweite Zelle aus dem Datensatz mit der ID 3 liefern.


    Wenn dir das nicht weiter hilft, dann musst du schon etwas konkreter werden :)

  • Ich wuuste garnicht, dass man column header auch als Integer deklarieren kann...
    Wie genau geht das?


    Ich bekomme meine Daten derzeit mit:

    Code
    Cursor cursor = meineDB.rawQuery("SELECT * FROM " + table + " WHERE id=" + row, null);
    String daten = cursor.getString(column)


    wobei row und column Integer sind.
    Nach meinem Verständnis lese ich auf diese Art jedoch immer die ganze Zeile ein, um dann die gesuchte Spalte zu extrahieren.
    Ich würde jedoch lieber direkt auf die einzelne Zelle mit dem Beispiel von and.dev zugreifen. Allerdings bekomme ich dann als Ergebnis nicht den Wert der Zelle, sondern den Spalten-Header... Hat hier jemand einen Tip?
    Vielleicht war das nicht verständlich... meine Spalten und Zeilen haben Zahlen von 0 bis... ale Bezeichnung.

  • Zitat

    Ich wuuste garnicht, dass man column header auch als Integer deklarieren kann...
    Wie genau geht das?


    Ich verstehe die Frage nicht... Wie definierst du denn deine Tabellen?
    Jede Spalte hat natürlich einen Datentyp, wobei SQLite da sehr großzügig ist, was Konvertierung angeht.
    Wenn das deine Frage nicht beantwortet, formuliere bitte die Frage neu :)


    Zitat

    Nach meinem Verständnis lese ich auf diese Art jedoch immer die ganze Zeile ein, um dann die gesuchte Spalte zu extrahieren.


    Das ist korrekt.


    Zitat

    Vielleicht war das nicht verständlich... meine Spalten und Zeilen haben Zahlen von 0 bis... ale Bezeichnung.


    Sehr unübersichtlich, auch bei Datenbanken gilt: sprechende Namen wählen


    Ansonsten geht das im Prinzip wie oben schon gezeigt:
    select <spaltenname> from <tabelle> where id=<gewüschte zeile>


    wert = cursor.getInt(0);

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!