首先,请耐心等待,我对SQLite的经验很少。我正在为Android平台编写Java应用程序,并且在尝试查询SQLite数据库时遇到了一个问题。
我已经实现了一个数据库,我不确定如何编写一个方法,该方法只返回某个列中某个特定行的特定行的游标。假设有一个标题为“date”的列,我想编写一个方法,它返回“date”列中没有值字符串“null”的所有列。
我知道如何编写fetchAll()方法以及如何为给定ID的特定行编写fetch(),但我不是多个特定的行。
如果有人能帮助我,我将不胜感激。
答案 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);
}
以下是步骤:
供进一步参考:
完成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:所有链接都经过测试并且运行良好!!
快乐编码!!