Android 数据库 根据表名,列名 查询出列下的所有数据,sql语句怎么写?

还有 怎么取出来显示

//把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一个个读出来,也可以指定读某一个

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-27
select col_name1,col_name2 from table追问

那怎么取出来呢?

相似回答