[英]SQLite Insert method doesn't work in my app
我在我的項目中使用SQLiteOpenHelper
,當我使用 add_leader 方法時一切正常,但是當我使用 add_Person 方法時它返回 false。 這是 sqlite 的第二個實例。
我用manjaro 18 linux
請問有什么幫助嗎?
public class SqliteHelper extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("CREATE TABLE " + START+ "("+KIND+" text) ");
sqLiteDatabase.execSQL("CREATE TABLE " + PERRSON + "("+ID_PER+" INTEGER PRIMARY KEY AUTOINCREMENT ,"
+FULLNAME_PER+" text,"+BIRTH_DAY_PER+"text," +BIRTH_MONTH_PER+" text,"+BIRTH_YEAR_PER+" text,"
+LEVEL_EDUCATION+" text,"+MOY_ONE+" text,"+MOY_TWO+" text,"+MOY_THREE+"text) ");
sqLiteDatabase.execSQL("CREATE TABLE " + LEADER + "("+ID_LEADER+" INTEGER PRIMARY KEY AUTOINCREMENT ,"+FULLNAME_LDR+" text,"+
BIRTH_DAY_LDR+" text,"+BIRTH_MONTH_LDR+" text,"+BIRTH_YEAR_LDR+" text) ");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL(" DROP TABLE IF EXISTS " + START);
sqLiteDatabase.execSQL(" DROP TABLE IF EXISTS " + PERRSON);
sqLiteDatabase.execSQL(" DROP TABLE IF EXISTS " + LEADER);
onCreate(sqLiteDatabase);
}
public boolean add_Person(String name, String date_day, String date_month, String date_year,
String level,String moy1,String moy2,String moy3) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(FULLNAME_PER, name);
cv.put(BIRTH_DAY_PER, date_day);
cv.put(BIRTH_MONTH_PER, date_month);
cv.put(BIRTH_YEAR_PER, date_year);
cv.put(LEVEL_EDUCATION, level);
cv.put(MOY_ONE, moy1);
cv.put(MOY_TWO, moy2);
cv.put(MOY_THREE, moy3);
long results = db.insert(PERRSON, null, cv);
db.close();
if (results == -1) return false;
else return true;
}
public boolean add_leader(String fullname, String date_day, String date_month, String date_year) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(FULLNAME_LDR, fullname);
cv.put(BIRTH_DAY_LDR, date_day);
cv.put(BIRTH_MONTH_LDR, date_month);
cv.put(BIRTH_YEAR_LDR, date_year);
long results = db.insert(LEADER, null, cv);
db.close();
if (results == -1) return false;
else return true;
}
未創建您的 PERRSON 表,因為在創建表查詢中存在間距問題。 在這些列 BIRTH_DAY_PER,MOY_THREE 中發現間距問題。
替換這部分代碼
sqLiteDatabase.execSQL("CREATE TABLE " + PERRSON + "("+ID_PER+" INTEGER PRIMARY KEY AUTOINCREMENT ,"
+FULLNAME_PER+" text,"+BIRTH_DAY_PER+"text," +BIRTH_MONTH_PER+" text,"+BIRTH_YEAR_PER+" text,"
+LEVEL_EDUCATION+" text,"+MOY_ONE+" text,"+MOY_TWO+" text,"+MOY_THREE+"text) ");
有了這個
sqLiteDatabase.execSQL("CREATE TABLE " + PERRSON + "("+ID_PER+" INTEGER PRIMARY KEY AUTOINCREMENT ,"
+FULLNAME_PER+" text,"+BIRTH_DAY_PER+" text," +BIRTH_MONTH_PER+" text,"+BIRTH_YEAR_PER+" text,"
+LEVEL_EDUCATION+" text,"+MOY_ONE+" text,"+MOY_TWO+" text,"+MOY_THREE+" text)");
sqLiteDatabase.execSQL("CREATE TABLE " + PERRSON + "(" + ID_PER + " INTEGER PRIMARY KEY AUTOINCREMENT ,"
+ FULLNAME_PER + " text," + BIRTH_DAY_PER + " text," + BIRTH_MONTH_PER + " text," + BIRTH_YEAR_PER + " text,"
+ LEVEL_EDUCATION + " text," + MOY_ONE + " text," + MOY_TWO + " text," + MOY_THREE + " text" + ")");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.