如何选择android中的位置和喜欢

时间:2014-04-03 14:06:06

标签: android sqlite

我在questo modo中创建了一个带有列的数据库:

public class DbHelper extends SQLiteOpenHelper {
static String DATABASE_NAME="calendarioDB";
public static final String CALENDARIO_TABLE="calendario";
public static final String CALENDARIO_ID="idcalendario";
public static final String ANNO="anno";
public static final String MESE="mese";
public static final String DATA="data";

如果我运行select查询

Cursor mCursor = dataBase.rawQuery("SELECT * FROM " + DbHelper.CALENDARIO_TABLE+" WHERE MESE LIKE 'Gen%'and ANNO = "+anno+"", null);

如果我想只提供日期,我应该

Cursor mCursor = dataBase.rawQuery("SELECT DATA FROM " + DbHelper.CALENDARIO_TABLE+" WHERE MESE LIKE 'Gen%'and ANNO = "+anno+"", null);

但应用程序崩溃了。

2 个答案:

答案 0 :(得分:0)

  

java.lang.IllegalStateException:无法从CursorWindow读取第0行col -1。在从中访问数据之前,请确保Cursor已正确初始化。

您正尝试从游标中不存在的列访问游标中的数据。如果列不存在,getColumnIndex()将返回-1。

答案 1 :(得分:0)

您的列实际上是data,而不是DATA。 “DATA”是您正在使用的变量名称。

所以要么:

"SELECT data FROM ...

"SELECT" + DbHelper.DATA + " FROM ...