0
我試圖將數據輸入到Sqlite數據庫,然後在我將數據輸入到textViews中時使用它,但當我按下按鈕動作時它會崩潰。我試着看看在Onclick出錯的地方,它說「由於:java.lang.IllegalArgumentException:column'Color'不存在」,但我不確定有什麼問題。如何從Sqlite數據庫獲取數據,然後將其輸入到TextViews中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDbHelper = new CarsDbHelper(this);
SQLiteDatabase db = mDbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(CarsEntry.COLUMN_NAME,current_car_name);
values.put(CarsEntry.COLUMN_COLOUR,current_car_colour);
values.put(CarsEntry.COLUMN_AGE,current_car_age);
long newRowId = db.insert(CarsEntry.TABLE_NAME, null, values);
}
public void button (View view) {
mDbHelper = new CarsDbHelper(this);
SQLiteDatabase db = mDbHelper.getReadableDatabase();
String[] projection = {
CarsEntry.COLUMN_NAME,
CarsEntry.COLUMN_AGE,
CarsEntry.COLUMN_AGE
};
// Filter results WHERE "title" = 'My Title'
String selection = CarsEntry.COLUMN_NAME + " = ?";
String[] selectionArgs = { current_car_name };
// How you want the results sorted in the resulting Cursor
Cursor cursor = db.query(
CarsEntry.TABLE_NAME, // The table to query
projection, // The columns to return
selection, // The columns for the WHERE clause
selectionArgs, // The values for the WHERE clause
null, // don't group the rows
null, // don't filter by row groups
null // The sort order
);
while(cursor.moveToNext()) {
//Name
current_car_name = cursor.getString(cursor.getColumnIndexOrThrow(CarsEntry.COLUMN_NAME));
//Colour
current_car_colour = cursor.getString(cursor.getColumnIndexOrThrow(CarsEntry.COLUMN_COLOUR));
//Age
current_car_age = cursor.getInt(cursor.getColumnIndexOrThrow(CarsEntry.COLUMN_AGE));
}
cursor.close();
TextView car_name = (TextView) findViewById(R.id.name);
car_name.setText(current_car_name);
TextView car_colour = (TextView) findViewById(R.id.colour);
car_colour.setText(current_car_colour);
TextView car_age = (TextView) findViewById(R.id.age);
car_age.setText(String.valueOf(current_car_age));
}
它說你沒有名爲'Colour'列。也許你寫錯了列名 – SiSa
但我創建了一個最終的字符串名稱,它的值爲字符串顏色 –
如果以編程方式創建數據庫,請從設備/模擬器中刪除應用程序並再次檢查。如果它不起作用,請包含您的dbhelper類。 – SiSa