1

この情報を含むテーブルがあります: テーブルを作成します。

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 を返します

私は何をすべきか?

私を助けてください。

4

1 に答える 1

4

この種のコードcursor1.getColumnIndex("Year")をこれに変更しcursor1.getInteger(cursor1.getColumnIndex("Year"))ます。したがって、値が返されます

于 2013-10-28T13:24:05.253 に答える