2017-03-08 3 views
-1

Dies ist mein Code für das Erstellen von TabellenAndroid SQLite-Einsatz bestellen wird immer falsch

database.execSQL("CREATE TABLE IF NOT EXISTS RNOTIFICATIONS(Position VARCHAR PRIMARY KEY NOT NULL,message VARCHAR, title VARCHAR, iconof VARCHAR);"); 

und Datenfunktion einfügen

public void insert_new_item(String n_message, String n_title,String n_icon) { 
    SQLiteDatabase database = this.getWritableDatabase(); 
    String rows= String.valueOf((int)DatabaseUtils.queryNumEntries(database, "RNOTIFICATIONS")); 
    ContentValues values = new ContentValues(); 
    values.put("Position",rows+1); 
    values.put("message", n_message); 
    values.put("title", n_title); 
    values.put("iconof",n_icon); 
    database.insert("RNOTIFICATIONS", null, values); 
    database.close(); 
} 

INPUT ist: insert_new_item(hi,Instagram, 2)

OUTPUT: [{message=1, iconof=Instagram, title=hi}]

ERWARTETES ERGEBNIS: [{Position=1,message=hi,title=Instagram, iconof=2}]

Der Befehl Einfügen fügt Werte in falsche Spalten ein. Kann jemand helfen. bitte Ich habe versucht, PRIMARY KEY und NOT NULL zu entfernen, aber es tut immer noch den Fehler.

+0

Können Sie die SELECT-Abfrage schreiben sollen? – Raghavendra

+0

@Raghavendra ja sicher. Halten Sie auf – Vivek

+1

@Raghavendra Ich fand einen Fehler in dieser Funktion und es löste den Fehler. Vielen Dank Kumpel :). du hast meinen Tag gerettet. Ich habe stundenlang an diesem Fehler gearbeitet. – Vivek

Antwort

-1

Das Problem war mit falscher Cursorposition. Es war (0)

map.put("message", cursor.getString(0)); 

es gewesen (1)

die Daten zu erhalten

map.put("message", cursor.getString(1));

+1

Es gibt keine Karte in der Frage ... –

+0

diese Zeilen waren in der Abfrage-Funktion, die ich ging nach Raghavendra fragte mich für seine Snap & dort fand ich den obigen Fehler. Ich meine die Einfügung war perfekt, aber mein Ausgabecode war falsch. – Vivek