//把id改成你的列名
public HashMap<String, Object> Get_Info(int id){
HashMap<String, Object> map = new HashMap<String, Object>();
String sql = "SELECT * FROM " + TABLENAME +" WHERE ID='" +id +"'";
Cursor result = this.db.rawQuery(sql, null); // 执行查询语句
for (result.moveToFirst(); !result.isAfterLast(); result.moveToNext()) { // 采用循环的方式检索数据
map.put("A", result.getString(1));
map.put("B", result.getString(2));
map.put("B", result.getInt(3));
}
this.db.close() ;
return map;
}
追问我要的是取出这列的所有数据并用list显示
追答返回数据类型改成list~for循环内数据改为list的数据项~sql语句改成
String sql = "SELECT "+ lieming +" FROM " + TABLENAME;
或者直接result.getString(2)这个就可以取出整一列数据了~这个也可以改成根据列名而不是序号来取
追问红色圈圈该怎么写?
红色圈圈该怎么写?
追答//你那种写法应该是这样写才对
public ArrayList<HashMap<String, Object>>Get_info(String ColumnName){
ArrayList<HashMap<String, Object>>list = new ArrayList<HashMap<String,Object>>();
String sql = "SELECT * FROM " + TABLENAME;
Cursor result = this.db.rawQuery(sql, null); // 执行查询语句
for (result.moveToFirst(); !result.isAfterLast(); result.moveToNext()) { // 采用循环的方式检索数据
HashMap<String, Object> map = new HashMap<String, Object>();
map.put(ColumnName, result.getString(cursor.getColumnIndex(ColumnName));
listItem_devices.add(map);
}
return list;
}
追问我那样写有什么地方不对吗? 还有怎么变成查询整张表了 ,然后再在map里获取列的数据
追答HashMap的初始化要放在for里~否则你要清理map,这个查整张表其实也是一样的~ getString直接在整张表里取出你要的那一列~
List.get(position).get(ColumnName).toString();
//position就是数组下标差不多,可以先获取list的size然后用for一个个读出来,也可以指定读某一个