我試圖做一個插入到這個數據庫,我會得到一個錯誤。任何想法,我會做錯什麼?這是一個空的異常錯誤,當我嘗試和加載這個片段。SQLite數據庫問題
助手類:
@Override
public void onClick(View v) {
sqlDate = (EditText) getView().findViewById(R.id.dateselected);
sqlTemperature = (EditText) getView().findViewById(R.id.tempvalue);
sqlFertile = (Switch) getView().findViewById(R.id.fertileswitch);
sqlNotes = (EditText) getView().findViewById(R.id.chartingnote);
switch (v.getId()) {
case R.id.chartingupdate:
boolean success = true;
try{
String date = sqlDate.getText().toString();
String temperature = sqlTemperature.getText().toString();
String fertile = sqlFertile.getText().toString();
String notes = sqlNotes.getText().toString();
SQLHelper entry = new SQLHelper(getActivity());
entry.open();
entry.createEntry(date, temperature, fertile, notes);
entry.close();
} catch (Exception e) {
success = false;
String err_msg = e.toString();
Dialog d = new Dialog(getActivity());
d.setTitle("Error Inserting");
TextView tv = new TextView(getActivity());
tv.setText(err_msg);
d.setContentView(tv);
d.show();
} finally {
if (success) {
Context context = getActivity();
Toast.makeText(context, "Charting Successful", Toast.LENGTH_LONG).show();
} else {
Context context = getActivity();
Toast.makeText(context, "Charting Unsuccessful", Toast.LENGTH_LONG).show();
}
}
break;
case R.id.pickdate:
Context context2 = getActivity();
Toast.makeText(context2, "Hello toast 2!", Toast.LENGTH_LONG).show();
break;
}
}
編輯::
public SQLHelper open() throws SQLException{
ourHelper = new DbHelper(ourContext);
ourDatabase = ourHelper.getWritableDatabase();
return this;
}
錯誤說: 05-12 19:56:23.218:在另一個類中
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_ROWID + " INTEGER AUTOINCREMENT, " +
KEY_CHARTING_DATE + " TEXT NOT NULL, " +
KEY_NAME + " TEXT, " +
KEY_CHARTING_TEMPERATURE + " INTEGER, " +
KEY_CHARTING_STAMPS + " INTEGER, " +
KEY_CHARTING_FERTILE + " TEXT, " +
KEY_CHARTING_NOTES + " TEXT, " +
KEY_CHARTING_PROC + ", " +
"PRIMARY KEY (" + KEY_ROWID + ", " + KEY_CHARTING_DATE + ")); "
);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE + ";");
onCreate(db);
}
public long createEntry(String date, String temperature, String fertile, String notes) {
ContentValues cv = new ContentValues();
cv.put(KEY_CHARTING_DATE, date);
cv.put(KEY_CHARTING_TEMPERATURE, temperature);
cv.put(KEY_CHARTING_FERTILE, fertile);
cv.put(KEY_CHARTING_NOTES, notes);
return ourDatabase.insert(DATABASE_TABLE, null, cv);
}
更新按鈕E/SQLiteLog(791):(1)在「AUTOINCREMENT」附近:語法錯誤
問題是我的表格創建.... PK是在兩列的。一個AUTOINCREMENT和另一個日期字段。由於某種原因,它不喜歡它。如果我將PK更改爲只有那一個AUTOINCREMENT列,它會工作......猜猜我必須將其設置爲日期字段。
這將有助於 – 2013-05-11 17:46:44
'ourDatabase'是否已正確初始化? – laalto 2013-05-11 17:49:12
請發佈您的日誌,以便我們可以清楚瞭解您的實際錯誤。 – Rekha 2013-05-11 18:02:00