Android - 仅获取java中列中值的行

时间:2011-07-23 05:01:55

标签: java android sql sqlite

首先,请耐心等待,我对SQLite的经验很少。我正在为Android平台编写Java应用程序,并且在尝试查询SQLite数据库时遇到了一个问题。

我已经实现了一个数据库,我不确定如何编写一个方法,该方法只返回某个列中某个特定行的特定行的游标。假设有一个标题为“date”的列,我想编写一个方法,它返回“date”列中没有值字符串“null”的所有列。

我知道如何编写fetchAll()方法以及如何为给定ID的特定行编写fetch(),但我不是多个特定的行。

如果有人能帮助我,我将不胜感激。

2 个答案:

答案 0 :(得分:4)

这些将返回Date!= null

的所有行
public Cursor fetch() 
        {
            return db.query(DATABASE_TABLE,
                    null, 
                    DATE + "!=''",
                    null,
                    null, 
                    null, 
                    null);                        


        }

如果您不需要所有列,请使用

public Cursor fetch() 
            {
                return db.query(DATABASE_TABLE,new String[] {
                    DATE,
                    TIME
                    },                        
                        DATE + "!=''",
                        null,
                        null, 
                        null, 
                        null);                           


            }

答案 1 :(得分:0)

要使用curosor获取多行,请使用此功能,您可以根据需要自定义它:

public List<String> getNotNullValues(String value) {
        String[] resultCols = new String[] { "Give your result column name here" }; //u could specify multiple column name here
        List<String> list = new ArrayList<String>();
        int count = 0;
        Cursor cr = getWord("DATE", "Your Table Name", "Value of the column",
                resultCols,"!="); //Cr is the cursor for resulted query
        if (null == cr) {
            return null;
        }
        do {
            list.add(cr.getString(0)); //Fill the list or whatever here while traversing with the cursor

        } while (cr.moveToNext());
        cr.close();
        return list;
    }

}



public Cursor getWord(String columnName, String tblName, String rowId,
            String[] columns, String condition) {
        String selection = columnName + condition ;  //condtion for selecting a value : "= ?"
        String[] selectionArgs = new String[] { rowId };

        return query(selection, tblName, selectionArgs, columns);
    }

以下是步骤:

  1. 使用条件,列名称和所需列名称构建查询
  2. 将光标移至生成的查询
  3. 将光标移动到下一条记录,直到cr.moveToNext()返回false
  4. 供进一步参考:

    完成Step by Step SQLite示例: http://mobile.tutsplus.com/tutorials/android/android-sqlite/

    Youtube视频教程

    http://www.youtube.com/watch?v=kMaBTolOuGo

    多表创建 http://androidforbeginners.blogspot.com/2010/01/creating-multiple-sqlite-database.html

    PS:所有链接都经过测试并且运行良好!!

    快乐编码!!