SQLite Datensatz auslesen - Wie?

  • Hallo,


    will zum ersten Testen eine simple DB erstellen, Daten einlesen und wieder auslesen.


    So erstelle ich die DB:


    Java
    myDB = this.openOrCreateDatabase(MY_DB_NAME, Context.MODE_PRIVATE, null);
    			myDB.execSQL("CREATE TABLE IF NOT EXISTS " + MY_DB_TABLE
    		            	+ " (_id integer primary key autoincrement, name varchar(200))"
    		            	+";");


    Wenn ich einen Datensatz einlesen will mache ich das wie folgt:


    Java
    EditText mText;
    				mText = (EditText) findViewById(R.id.editText1);
    
    
    				myDB.execSQL("INSERT INTO "+MY_DB_TABLE+" (name) "
    				    						+"VALUES ('"+mText.getText().toString()+
    				        				"');");


    Meine Frage ist jetzt, wie lese ich den Wert wieder aus? Anhand des primärschlüssels, der wäre dann z.B. 0 oder 1.


    Ich will den Namen (also mText) den ich vorher eingelesen habe, in einem Testview anzeigen lassen.


    Danke für jede Form der Hilfe.
    mfg

  • Hi Daniel002,


    Zitat

    Meine Frage ist jetzt, wie lese ich den Wert wieder aus?


    Genauso wie bei einer "normalen" Datenbank mittels SELECT.
    Das ganze läuft über eine Query.



    Als Rückgabewert erhälst du einen Cursor diesen musst du dann nur noch aus lesen und schon hast du alles.


    Java
    myCursor..isFirst();
    String name = myCursor.getString(0);


    Achso SQLite nutzt bei Textfeldern immer die komplette länge das Feldes eingaben wie "VACHAR(200)" werden einfach irgnoriert. Es iwrd immer nur soviel speicherplatzgenutzt wie lang deine Texteingabe ist. Aus diesem Grund nimmt man statt VARCHAR auch TEXT als Spaltendefinition. Quelle: Datentypen Sqlite


    mfg Titus

  • Hi Daniel002,
    Was sagt den die Fehlermeldung in der Logcat?


    ich vermutet mal es gibt in der Spalte keinen Wert "0".
    Versuch mal "1".


    Du kannst mittels:

    Java
    myCursor.getCount()


    raus bekommen wie viel Datensätze der Cursor erhält.


    Oder du schaust einfach mal in deine erstellte Datenbank. In der DDMS View kannst du sowas einsehen.


    Mfg Titus

Jetzt mitmachen!

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