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