2017-11-26 2 views
0

einfügen, wenn die Anzahl der Spalten in meiner Datenbank ist 6, Es speichert Daten gut. Aber wenn ich die Anzahl der Spalten, zum Beispiel 10 Spalten, erhöhen. sqlite fügt keine Daten ein. Es gibt keinen Fehler im Programm. Einfach keine Daten einfügen. In den letzten zwei Wochen habe ich nicht die richtige Antwort bekommen. DankErhöhen Sie die Anzahl der SQLite-Spalten und keine Daten

public class Data_par extends SQLiteOpenHelper{ 
public static final String DATABASE_NAME = "/mnt/sdcard/Par.db"; 
public static final String TABLE_NAME = "Par"; 

public static final String COL_2 = "ONVAN"; 
public static final String COL_3 = "TOZIHAT"; 
public static final String COL_4 = "SAL"; 
public static final String COL_5 = "MAH"; 
public static final String COL_6 = "ROOZ"; 
public static final String COL_7 = "SAL_EKHTAR"; 
public static final String COL_8 = "MAHE_KHTAR"; 
public static final String COL_9 = "ROOZ_EKHTAR"; 
public static final String COL_11 = "SAAT_EKHTAR"; 
public static final String COL_12 = "DAGHIGHE_EKHTAR"; 
String DATA_NAME; 


public Data_par(Context context) { 

    super(context, DATABASE_NAME, null, 1); 


} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT ,ONVAN TEXT ,TOZIHAT TEXT ,SAL INTEGER ,MAH INTEGER ,ROOZ INTEGER ,SAL_EKHTAR INTEGER ,MAH_EKHTAR INTEGER ,ROOZ_EKHTAR INTEGER)"); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int i, int i1) { 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); 

} 


public boolean insertData(String onvan, String tozihat, Integer sal, Integer mah, Integer rooz, Integer sal_ekhtar, Integer mah_ekhtar, Integer rooz_ekhtar) { 

    SQLiteDatabase db = Data_par.this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues(); 
    contentValues.put(COL_2, onvan); 
    contentValues.put(COL_3, tozihat); 
    contentValues.put(COL_4, sal); 
    contentValues.put(COL_5, mah); 
    contentValues.put(COL_6, rooz); 
    contentValues.put(COL_7, sal_ekhtar); 
    contentValues.put(COL_8, mah_ekhtar); 
    contentValues.put(COL_9, rooz_ekhtar); 


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

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

     return true; 
    } 


} 
+0

Ersetzen 'insert' mit' insertOrThrow'. –

+0

seine Arbeit perfekt, danke –

Antwort

0

Die folgenden Spalten sind in der Insert-Anweisung nicht vorhanden:

public static final String COL_8 = "MAHE_KHTAR"; 
public static final String COL_11 = "SAAT_EKHTAR"; 
public static final String COL_12 = "DAGHIGHE_EKHTAR"; 

Versuchen Sie, die benötigten Spalten in dem Einsatz hinzugefügt.

Vorschlag zur besseren Lesbarkeit:

trennen jede Spaltendefinition in einer neuen Zeile und verwenden Sie die Variable Spalten als endgültig definiert.

Beispiel:

db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + 
      "ID INTEGER PRIMARY KEY AUTOINCREMENT ," + 
        COL_2 + " TEXT, " + 
      + COL_3 + " TEXT) " 
+0

und diese Lösung funktioniert perfekt, danke –

Verwandte Themen