我試着去創建一個表名「知識」sSQLITE查詢創建表不工作
以下是我的查詢,
private static final String CREATE_KNOWLEDGE_STATUTORY = "CREATE TABLE " + TABLE_KNOWLEDGE_STATUTORY + "("
+ KEY_ID + " INTEGER PRIMARY KEY,"
+ KEY_STATUTORY_MAPPING + " TEXT,"
+ KEY_LOCATION + " TEXT,"
+ KEY_DESCRIPTION + " TEXT,"
+ KEY_ACTIVE + " TEXT,"
+ KEY_PROVISION + " TEXT,"
+ KEY_COMPLIANCE_TASK + " TEXT,"
+ KEY_FORMAT_FILE_LIST + " TEXT,"
+ KEY_DURATION + " TEXT,"
+ KEY_DOC_NAME + " TEXT,"
+ KEY_PENAL_CONSEQUENCE + " TEXT,"
+ KEY_DURATION_ID + " TEXT,"
+ KEY_FREQUENCY_ID + " INTEGER,"
+ KEY_REPEAT_FREQ + " TEXT,"
+ KEY_COMPLIANCE_ID + " INTEGER,"
+ KEY_REPEAT_TYPE_ID + " TEXT,"
+ KEY_STATUTORY_MONTH + " TEXT,"
+ KEY_STATUTORY_DATE + " TEXT,"
+ KEY_TRIGGER_DATE + " TEXT,"
+ KEY_REPEAT_BY + " TEXT" + ");";
以下是我的方法,我用它來創建它,
public void addStatutory(StatutoryModel statutoryModel) {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_ID, statutoryModel.getId());
contentValues.put(KEY_STATUTORY_MAPPING, statutoryModel.getStatuoryMapping());
contentValues.put(KEY_LOCATION, statutoryModel.getLocation());
contentValues.put(KEY_DESCRIPTION, statutoryModel.getDescription());
contentValues.put(KEY_ACTIVE, statutoryModel.getIsStatutoryActive());
contentValues.put(KEY_PROVISION, statutoryModel.getStatutoryProvision());
contentValues.put(KEY_COMPLIANCE_TASK, statutoryModel.getComplianceTask());
contentValues.put(KEY_FORMAT_FILE_LIST, statutoryModel.getFormat_fileList());
contentValues.put(KEY_DURATION, statutoryModel.getDuration());
contentValues.put(KEY_DOC_NAME, statutoryModel.getDocument_name());
contentValues.put(KEY_PENAL_CONSEQUENCE, statutoryModel.getPenalConsequences());
contentValues.put(KEY_DURATION_ID, statutoryModel.getDurationType_id());
contentValues.put(KEY_FREQUENCY_ID, statutoryModel.getFrequencyId());
contentValues.put(KEY_REPEAT_FREQ, statutoryModel.getRepeatsEvery());
contentValues.put(KEY_COMPLIANCE_ID, statutoryModel.getComplianceId());
contentValues.put(KEY_REPEAT_TYPE_ID, statutoryModel.getRepeatsTypeId());
contentValues.put(KEY_STATUTORY_MONTH, statutoryModel.getStatutory_month());
contentValues.put(KEY_STATUTORY_DATE, statutoryModel.getStatutory_date());
contentValues.put(KEY_TRIGGER_DATE, statutoryModel.getTrigger_before_days());
contentValues.put(KEY_REPEAT_BY, statutoryModel.getRepeat_by());
sqLiteDatabase.insert(TABLE_KNOWLEDGE_STATUTORY,null,contentValues);
sqLiteDatabase.close();
}
林調用它作爲
DbHandler dbHandler = new DbHandler(getActivity());
dbHandler.addStatutory(new StatutoryModel(i, dbDesc, isStatutoryActive, statutoryProvision, complianceTask, format_fileList, duration, penalConsequences, document_name, durationType_id, frequencyId, repeatsEvery, repeatsTypeId, complianceId, statutory_month, statutory_date, trigger_before_days, repeat_by, compDescription, dbLoc));
問題是,我得到像沒有這樣的表存在錯誤。以下是我的錯誤日誌。
沒有這樣的表:知識03-28 15:58:48.584 28428-28428 /? E/SQLiteDatabase:錯誤插入repeatsEvery = NULL DOCUMENT_NAME = NULL 位置=印度>>南statutoryProvision =法定條文 2603161717 statutory_month = NULL statutoryMapping =符合 說明2603161717 statutory_date = NULL repeatsTypeId = NULL 時間= NULL frequencyId = 1 _id = 1 repeat_by = DAYOFMONTH complianceId = 26 penalConsequences = complianceTask =符合任務2603161717-1 trigger_before_days = null描述=主要立法 2503161026 >>次級立法2603161717 format_fileList = NULL durationType_id = NULL isStatutoryActive =真 android.database.sqlite.SQLiteException :沒有這樣的表格:知識 (代碼1):,當編譯時:INSERT INTO 知識(repeatsEvery,document_name,location,statutoryProvision,statutory_month,statutoryMapping,statutory_date,repeatsTypeId,duration,frequencyId,_id,repeat_by,complianceId,penalConsequences,complianceTask,trigger_before_days,description,format_fileList,durationType_id,isStatutoryActive) VALUES在android.database.sqlite.SQLiteConnection上使用(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)) .nativePrepareStatement(本地 法)
在沒有辦法,這個問題是重複的,因爲它得到了由CL標記爲重複的,因爲問題onUpgrade但在該應用中無需沖洗以前的數據運行的方式是不
'沒有這樣的桌子:知識' –
顯示完整的代碼並參見http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/ –
您是否有信心擁有這張桌子:知識你的sqlite數據庫。 如果不是,那麼在你的類文件中你已經用SQLIteOpeHelper在那個類文件中擴展它,你會發現onCreate方法,因爲你必須先創建你的表,只有在你可以插入數據之後。 –