【问题标题】:Increase the number of sqlite columns and not insert any data增加sqlite列数,不插入任何数据
【发布时间】:2017-11-26 09:48:23
【问题描述】:

当我的数据库中的列数例如为6时,它可以很好地保存数据。但是当我增加列数时,例如 10 列。 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;
    }


}

【问题讨论】:

  • insert 替换为insertOrThrow
  • 完美运行,谢谢

标签: android sqlite android-sqlite sqliteopenhelper


【解决方案1】:

插入语句中不存在以下列:

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

尝试在插入中添加所需的列。

可读性建议:

在新行中分隔每个列定义,并使用您定义为 final 的可变列。

例子:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多