1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Lesen und schreiben in eine SQLite-Datenbank

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von ensacom, 16.05.2009.

  1. ensacom, 16.05.2009 #1
    ensacom

    ensacom Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    68
    Erhaltene Danke:
    5
    Registriert seit:
    15.05.2009
    Hallo, kann mir einer ein kleines Beispiel dafür geben, wie ich mit meinem Programm erst eine SQLite-DB anlegen und dann lesend und schreibend darauf zugreifen kann?

    Ich möchte Eingaben in ein Textfeld in die Datenbank schreiben und anschließend die Werte in einer Liste ausgeben.

    Bitte ganz was einfaches, aus dem notes-Tutorial steige ich nicht ganz durch weil das einfach zu umfangreich ist.

    Danke schon mal.
     
  2. ensacom, 17.05.2009 #2
    ensacom

    ensacom Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    68
    Erhaltene Danke:
    5
    Registriert seit:
    15.05.2009
    Kann mir da wirklich keiner helfen?
     
  3. ensacom, 18.05.2009 #3
    ensacom

    ensacom Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    68
    Erhaltene Danke:
    5
    Registriert seit:
    15.05.2009
    Ich habe es nun geschafft eine Datenbank anzulegen, Tabellen darin anzulegen, Daten in eine Tabelle zu schreiben und diese Daten auch wieder auszulesen.

    Kann bitte jemand den Source durchschauen und mir Tipps geben was man besser machen könnte und was nicht so gut ist?



    Haupt-Activity
    Code:
    public class ensacom1 extends Activity {        
        SQLiteDatabase myDB = null; 
        final static String MY_DATABASE_NAME = "tankpro";
        final static String MY_DATABASE_TABLE = "fahrzeuge";
        
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            onCreateDBAndDBTabled(); //DB und Tables erstellen wenn noch nicht vorhanden
            setContentView(R.layout.main);
        }
    
    
        private void onCreateDBAndDBTabled()
        {
            myDB = this.openOrCreateDatabase(MY_DATABASE_NAME, MODE_PRIVATE, null);
            myDB.execSQL("CREATE TABLE IF NOT EXISTS " + MY_DATABASE_TABLE
                            + " (id integer AUTO_INCREMENT PRIMARY KEY, name varchar(100), model varchar(100), bemerkungen varchar(255), kraftstoffart varchar(100))"
                            +";");
        }
    
    Activity Fahrzeug_New
    Code:
    //Klick auf einen Menüpunkt
        public boolean onOptionsItemSelected(MenuItem item){
            switch (item.getItemId()) {
            case MENU_SAVE:
                EditText KfzName = (EditText)findViewById(R.id.ed_fahrzeugname);
                EditText KfzModel = (EditText)findViewById(R.id.ed_fahrzeugmodel);
                EditText KfzBemerkungen = (EditText)findViewById(R.id.ed_fahrzeugbemerkung);
                Spinner KfzKraftstoffart = (Spinner)findViewById(R.id.cb_Kraftstoffarten);
                    
                InsertToDB(KfzName.getText().toString(), KfzModel.getText().toString(), KfzBemerkungen.getText().toString(), KfzKraftstoffart.getSelectedItem().toString());
                Intent ifahrzeuge = new Intent(this, fahrzeuge.class);
                startActivity(ifahrzeuge);
                return true;    
            }
            return false;
        }
    
    
    //Neues Fahrzeug in DB speichern       
        public void InsertToDB(String kfzName, String kfzModel, String kfzBemerkungen, String kfzKraftstoffart)
        {
            SQLiteDatabase myDB = null;
            try {
                myDB = this.openOrCreateDatabase(ensacom1.MY_DATABASE_NAME, MODE_PRIVATE, null);    
                myDB.execSQL("INSERT INTO "+ensacom1.MY_DATABASE_TABLE+" (name, model, bemerkungen, kraftstoffart) "
                                                       +"VALUES ('"+kfzName+"','"+kfzModel+"','"+kfzBemerkungen+"','"+kfzKraftstoffart+"');");
            }
            finally
            {
                if (myDB != null)
                    myDB.close();
            }
        }
    

    Activity fahrzeuge
    Code:
    public class fahrzeuge extends ListActivity {
        SQLiteDatabase myDB = null; 
        ArrayList<String> results = new ArrayList<String>();  
        
        @Override
        public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            
            myDB = this.openOrCreateDatabase(ensacom1.MY_DATABASE_NAME, MODE_PRIVATE, null);        
            Cursor c = myDB.rawQuery("SELECT name, model FROM " + ensacom1.MY_DATABASE_TABLE + ";", null);
            int kfzNameColumn  = c.getColumnIndex("name");
            int kfzModelColumn = c.getColumnIndex("model");
            startManagingCursor(c);
            c.moveToFirst();
         
            if (c != null) {
              if (c.isFirst()) {
                     int i = 0;
                  
                     do {
                          i++;
         
                          String kfzname = c.getString(kfzNameColumn);
                          String kfzmodel = c.getString(kfzModelColumn);
                          results.add(kfzname + " - " + kfzmodel);
                     } while(c.moveToNext());
                  }
            }
            this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results));
        }
    
    Für Tipps was ich besser machen könnte wäre ich sehr dankbar
     
    deimos, walla und Asfaloth haben sich bedankt.

Diese Seite empfehlen