我試圖使用SQLite數據庫爲我的應用程序存儲一些數據。我在我的DbHelper類得到這個(延伸SqLiteOpenHelper)SQLite從第0行第1列獲得字段插槽失敗
// Database creation sql statement
private static final String DATABASE_CREATE = "create table "
+ jarsTable + "("+colID+" integer primary key autoincrement, "+colName+" varchar(100), " +
colGoal+" real not null, "+colBal+" real not null, "+colCurr+" varchar(100));";
public DbHelper(Context context) {
super(context, dbName, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(DATABASE_CREATE);
}
而且我這有我的DataSource類
private Jar cursorToJar(Cursor cursor) {
Jar myJar = new Jar();
myJar.setId(cursor.getLong(0));
myJar.setName(cursor.getString(1));
myJar.setBalance(cursor.getDouble(2));
myJar.setGoal(cursor.getDouble(3));
myJar.setCurrency(cursor.getString(4));
return myJar;
}
內,我得到我的問題標題中提到的錯誤,當它到達上面的myJar.setName行時,它會崩潰應用程序。對於我出錯的地方,我有點困惑,我得到一個字符串,而我的表在第一列存儲一個字段,我想,所以..是的。感謝您的幫助,提前
編輯:這是我的人口方法:
public Jar createJar(String name, double goal, String currency) {
ContentValues values = new ContentValues();
values.put(DbHelper.colName, name);
values.put(DbHelper.colGoal, goal);
values.put(DbHelper.colCurr, currency);
values.put(DbHelper.colBal, 0.0);
long insertId = database.insert(DbHelper.jarsTable, null,
values);
Log.d("Insert ID:", ""+insertId);
// To show how to query
Cursor cursor = database.query(DbHelper.jarsTable,
allColumns, DbHelper.colID + " = " + insertId, null,
null, null, null);
cursor.moveToFirst();
return cursorToJar(cursor);
}
logcat給出了什麼錯誤? – 2012-02-08 01:25:31
02-07 20:05:11.240:E/AndroidRuntime(445):java.lang.RuntimeException:傳遞結果失敗ResultInfo {who = null,request = 0,result = -1,data = Intent {(has extras)} } to activity {com.nickavv.quickchange/com.nickavv.quickchange.JarList}:java.lang.IllegalStateException:從第0行獲取字段插槽col 1失敗 – Nick 2012-02-08 01:26:20