Lesen und schreiben in eine SQLite-Datenbank

ensacom

ensacom

Ambitioniertes Mitglied
6
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.
 
Kann mir da wirklich keiner helfen?
 
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
 
  • Danke
Reaktionen: deimos, walla und Asfaloth

Ähnliche Themen

netfreak
  • netfreak
Antworten
10
Aufrufe
455
netfreak
netfreak
R
Antworten
6
Aufrufe
997
swa00
swa00
S
Antworten
33
Aufrufe
2.662
Sempervivum
S
Zurück
Oben Unten