为什么在sqlite中的getColumnIndex返回android中的列数?

时间:2013-10-28 13:20:46

标签: android sqlite select indexing

我有一个包含此信息的表格:     我创建表。

db.execSQL("CREATE TABLE IF NOT EXISTS income (id_income INTEGER 
PRIMARY KEY AUTOINCREMENT, id_category INT(20), id_account INT(20),
Year INT(5), month INT(5), day INT(5) ,pay DOUBLE(20));");

然后我在这个表中插入一行:

db.execSQL("INSERT INTO
    income(id_category,id_account,Year,month,day,pay)  VALUES
    (1,1,2013,1,1,678);");

然后我从我的桌子中选择*,

String selectQuery = "SELECT * FROM income ";       
Cursor cursor = db.rawQuery(selectQuery, null);         
cursor.moveToFirst();

int count = cursor.getCount();
if(count>0){
    for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
         int temp_acc1;
         int temp_cat;
         temp_acc1=(cursor1.getColumnIndex("id_account"));   
         temp_cat=(cursor1.getColumnIndex("id_category"));
    }
}

但是当我记录temp_acc1或temp_cat时,它返回列数。 例如,temp_acc1返回3 //实际返回1 或temp_cat返回2 //实际返回1 或者如果我使用temp_year = cursor1.getColumnIndex(“Year”)它返回5.////实际上返回2013

我该怎么办?

请帮帮我。

1 个答案:

答案 0 :(得分:4)

将此类代码cursor1.getColumnIndex("Year")更改为此cursor1.getInteger(cursor1.getColumnIndex("Year"))。所以它会返回值