Fehler: Insert in SQLite Datenbank, Hilfe gesucht

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Micka, 02.01.2012.

  1. Micka, 02.01.2012 #1
    Micka

    Micka Threadstarter Erfahrener Benutzer

    Beiträge:
    173
    Erhaltene Danke:
    1
    Registriert seit:
    30.12.2011
    Hy

    Ich bin noch relativ frisch wenn es darum geht Android-Apps zu entwickeln. Programmiert hab ich jedoch schon einiges während meines bald endenden Studiums der Informatik. Nun wollte ich mir Android mal angucken um einschätzen zu können ob und in Welchem Umfang ich es in einer ProjektArbeit und evtl Bachelorarbeit verwenden möchte. Nun zu meinem Projekt.

    Geplant ist ein ziemlich simples Haushaltsbuch. Das Menü das sich nach dem Start der App zeigt ist bisher nur teilweise mit Funktionen hinterlegt.
    Die Funktion Eintrag Hinzufügen ist implementiert aber anscheinend fehlerbehaftet.

    Die Funktion Einträge anzeigen ist auch soweit fertig implementiert.

    Die Funktionen Eintrag ändern bzw Eintrag löschen sind noch nicht implementiert, sollen aber auch nicht mehr per Menübutton sondern per ContextMenu bei den angezeigten Einträgen realisiert werden.

    Dazu später evtl mehr wenn das derzeitige Problem behoben ist.

    Beim Eintragen in die Datenbank (Funktion onClickEintraghinzufuegen der Klasse EintragHinzufuegenActivity) fliegen mir leider aber Exceptions um die Ohren.

    LogCat:
    Leider kann ich mit meinem Kenntnisstand keine Fehler entdecken. Sieht jemand von euch den Fehler?

    Fehlerbehafteter Code(Auskommentiert klappt alles):

    Code:
    public void onClickEintragSpeichern(final View sfNormal) 
        {
            Spinner day = (Spinner) findViewById(R.id.datum_Tag);
            Spinner month = (Spinner) findViewById(R.id.datum_Monat);
            Spinner year = (Spinner) findViewById(R.id.datum_Jahr);
            EditText wofuer = (EditText) findViewById(R.id.hinzufuegen_zweck);
            EditText betrag = (EditText) findViewById(R.id.hinzufuegen_betrag);
            final Eintrag eintrag = new Eintrag();
            eintrag.day = (Integer) day.getSelectedItem();
            eintrag.month = (Integer) month.getSelectedItem();
            eintrag.year = (Integer) year.getSelectedItem();
            eintrag.wofuer = wofuer.getText().toString();
            eintrag.betrag = Double.parseDouble(betrag.getText().toString());
            myDB = this.openOrCreateDatabase(MY_DB_NAME, MODE_PRIVATE, null);
            myDB.execSQL("INSERT INTO "+MY_DB_TABLE+" (day, month, year, wofuer, betrag) "
                    +"VALUES (" + eintrag.day +","+eintrag.month+","
                    + eintrag.year +","+"'"+eintrag.wofuer +"',"
                    + eintrag.betrag+ ");");
            Log.v(tag, "Insert new Eintrag: " + eintrag.day + "." +eintrag.month +"." + eintrag.year +", " + eintrag.wofuer + ", " + eintrag.betrag);
            final Intent i = new Intent(this, Startseiteactivity.class);
            i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    
            startActivity(i);
        }
    
     
  2. Micka, 02.01.2012 #2
    Micka

    Micka Threadstarter Erfahrener Benutzer

    Beiträge:
    173
    Erhaltene Danke:
    1
    Registriert seit:
    30.12.2011
    Dank einem Kollegen ist der Fehler beim eintragen nun behoben.

    Neuer Quelltext:
    Code:
    public void onClickEintragSpeichern(final View sfNormal) 
        {
            Spinner day = (Spinner) findViewById(R.id.datum_Tag);
            Spinner month = (Spinner) findViewById(R.id.datum_Monat);
            Spinner year = (Spinner) findViewById(R.id.datum_Jahr);
            EditText wofuer = (EditText) findViewById(R.id.hinzufuegen_zweck);
            EditText betrag = (EditText) findViewById(R.id.hinzufuegen_betrag);
            final Eintrag eintrag = new Eintrag();
           
           [B] eintrag.day = Integer.valueOf(day.getSelectedItem().toString()) ;
            eintrag.month = Integer.valueOf(month.getSelectedItem().toString()) ;
            eintrag.year = Integer.valueOf(year.getSelectedItem().toString()) ;
            eintrag.wofuer = wofuer.getText().toString();
            eintrag.betrag = Double.parseDouble(betrag.getText().toString());[/B]
            myDB = this.openOrCreateDatabase(MY_DB_NAME, MODE_PRIVATE, null);
            myDB.execSQL("INSERT INTO "+MY_DB_TABLE+" (day, month, year, wofuer, betrag) "
                    +"VALUES (" + eintrag.day +","+eintrag.month+","
                    + eintrag.year +","+"'"+eintrag.wofuer +"',"
                    + eintrag.betrag+ ");");
            Log.v(tag, "Insert new Eintrag: " + eintrag.day + "." +eintrag.month +"." + eintrag.year +", " + eintrag.wofuer + ", " + eintrag.betrag);
            final Intent i = new Intent(this, Startseiteactivity.class);
            i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    
            startActivity(i);
        }
    
     
    Zuletzt bearbeitet: 02.01.2012

Diese Seite empfehlen