2017-11-26 17 views
0

たとえば、Myデータベースの列の数が6の場合、データがよく保存されます。しかし、私は列の数を増やすと、たとえば10列。 sqliteはデータを挿入しません。プログラムにエラーはありません。データを挿入しないでください。最後の2週間で私は正解を得られなかった。おかげsqlite列の数を増やし、データを挿入しません

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

は '' insertOrThrow'とinsert'を交換します。 –

+0

その仕事は完璧です、ありがとう –

答えて

0

次の列は、INSERT文で存在しない。

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

挿入で必要な列を追加してみてください。読みやすくするため

提案:新しい行に

個別の各列の定義と、あなたが最終的として定義された変数の列を使用します。

例:

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

とこのソリューションは完璧に動作します、ありがとう –

関連する問題