我的 SQLiteOpenHelper
类有问题。我有一个包含打印机制造商和任何类型打印机详细信息的数据库。我尝试使用此代码从我的数据库中获取所有制造商,并将它们返回到数组列表中。
// Read database for All printer manufacturers and return a list
public ArrayList<String> getPrManufacturer(){
ArrayList<String> manufacturerList = new ArrayList<String>();
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.query(CoDeskContract.Printer.TABLE_NAME,
printerManuProjection, null, null, null, null, null,null);
// If cursor is not null and manufacturer List
// does not contains Manufacturer in the list then add it!
if ((cursor != null) && (cursor.getCount()>0)){
cursor.moveToFirst();
do {
String cursorManufacturer = cursor.getString(0);
//Checking for manufacturer in the list
for(String manufacturerInList:manufacturerList){
if (!manufacturerInList.equals(cursorManufacturer))
manufacturerList.add(cursorManufacturer);
}
}while(cursor.moveToNext());
}
// Return list of manufacturers from database
return manufacturerList;
}
我希望每个制造商都出现在列表中。不知何故我无法让它工作。我还是个新手。
感谢您的帮助。
您还可以在 SQLite (http://www.sqlite.org/lang_select.html) 中使用 distinct 关键字。为此使用 SQLiteDatabase.rawQuery(String query, String[] args)。
db.rawQuery("SELECT DISTINCT name FROM "+ CoDeskContract.Printer.TABLE_NAME,null);
我是一名优秀的程序员,十分优秀!