2017-08-06 1 views
0

Ich versuche Datenbank zu erstellen, die drei Stücke von Informationen halten -name -Geld -comment so habe ich diese Methode in den databasehelperHinzufügen neue Zeile SQLite

 public boolean insertDataToHeader(String name,String money,String comment){ 

    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues(); 
    contentValues.put(COL_H0,name); 
    contentValues.put(COL_H1,money); 
    contentValues.put(COL_H2,comment); 

    long result = db.insert(HEADERS, null, contentValues); 

    if (result == -1) 
     return false; 
    else 
     return true; 
} 

und der Call-Methode in der Tätigkeit

public void addHeaderToDatabase(){ 
    addButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      moneyS=money.getText().toString(); 
      isInserted=MainActivity.moneyDB.insertDataToHeader(title.getText().toString(),moneyS,comment.getText().toString()); 
      backToMain(isInserted); 

     } 
    }); 

} 

, als ich zwei Zeilen hinzufügen -Name -Geld, zum Beispiel seiner Werke richtig, aber wenn ich hinzufügen, den dritt man es nicht, und das Verfahren ist false zurück, was bedeutet, dass die Daten nicht gewesen ein dded. das lässt mich denken, gibt es eine begrenzte Anzahl von Zeilen in der SQLIT-Datenbank? ** Anmerkung ** der Anruf in AddActivity ist nicht in der mainActivity und das Verfahren backToMain(isInserted); Rückkehr in die mainActivity, wenn die Daten

+0

wenn Sie dritte Spalt hinzufügen, den Kommentar ist, nachdem Sie die DB erstellt versuchen, App-Daten löschen und erneut ausführen App ... nein es gibt keine begrenzte Anzahl von Zeilen –

+0

Ich hat versucht, dass viele Male + i die App vollständig entfernt und neu installieren und das gleiche Problem:/ –

+1

Ersetzen Sie 'insert()' mit 'insertOrThrow()', so dass Sie eine sinnvolle Fehlermeldung erhalten. –

Antwort

0

Der Kommentartext könnte null sein und die Spalte NOT NULL so eingefügt hve worden, legen Sie andernfalls . Eine Umgehung wäre, nach einer Null zu suchen, bevor die Funktion insertDataToHeader übergeben wird.

public void onClick(View v) { 
     moneyS=money.getText().toString(); 
     String commentS; 

      if ((comment.getText().toString()==null)){ 
       commentS=" "; 
      else { 
       commentS=comment.getText().toString();  
      } 

      isInserted=MainActivity.moneyDB.insertDataToHeader(title.getText().toString(),moneyS, commentS); 
      backToMain(isInserted); 

     } 
Verwandte Themen