我对数据库很新,很抱歉,如果这是一个愚蠢的错误/问题。所以我试图从我的数据库中提取数据,但每次尝试时,例如获取类别,它会拉出类别,重新循环,并获得标题?这是我检索数据的代码(拉动两组数据而不仅仅是一组数据的代码)
public ArrayList<String> get_all_Categories()
{
String get_Cats_Query = "SELECT item_category from " + TABLE_ITEMS;
Cursor cursor = getReadableDatabase().rawQuery(get_Cats_Query, null);
cats_from_db = new ArrayList<String>() {};
if(cursor.moveToFirst()) //if cursor is on the first value
{
do{
if(!cats_from_db.contains(cursor.getString(0)))
{
cats_from_db.add(cursor.getString(0));
}
}
while(cursor.moveToNext());
}
cursor.close();
}
这是我放入数据的地方:我调试了这个,所有项目似乎都在正确的位置:
public void Add_Item(New_Item_db new_item)
{
ContentValues item_values = new ContentValues();
item_values.put(COLUMN_CATEGORY, new_item.get_itemCategory());
item_values.put(COLUMN_PRICE, new_item.get_itemPrice());
item_values.put(COLUMN_TITLE, new_item.get_itemTitle());
item_values.put(COLUMN_VENDOR, new_item.get_itemVendor());
item_values.put(COLUMN_IMAGE, new_item.get_itemImage());
//get and add the created items to the database
SQLiteDatabase db = getWritableDatabase();
db.insert(TABLE_ITEMS, null, item_values); database
db.close();
}
以下是我的onCreate
数据库:
@Override
public void onCreate(SQLiteDatabase db)
{
String Create_query = "CREATE TABLE " + TABLE_ITEMS + "("
+ COLUMN_INDEX + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COLUMN_CATEGORY + " TEXT, "
+ COLUMN_PRICE + " TEXT, "
+ COLUMN_TITLE + " TEXT, "
+ COLUMN_VENDOR + " TEXT, "
+ COLUMN_IMAGE + " BLOB" +
");";
db.execSQL(Create_query);
}
如果有人能帮助我弄清楚为什么当我尝试将所有类别拉到列表中时,我会得到类别,标题,类别,标题等而不仅仅是类别,我将非常感激。在此先感谢:)