我尝试将数据输入到Sqlite数据库中,然后在将数据输入textViews时将其输出使用,但是当我按下按钮操作时它会崩溃。我试着看看它在Onclick中出错的地方,它说"引起:java.lang.IllegalArgumentException:column' Color'不存在"但我不确定是什么错误。
@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));
}
答案 0 :(得分:0)
在投影中,您有两次COLUMN_AGE并使用此列进行选择,因此您没有结果COLUMN_COLOUR
String[] projection = {
CarsEntry.COLUMN_NAME,
CarsEntry.COLUMN_AGE,
CarsEntry.COLUMN_AGE
};