2012-02-23 9 views
17

私はカーソルから列の値を取得しようとしていますが、この列は実行時にクエリ内の計算によって生成されます。この列のNULL値を取得しています。存在する他のすべての列の値を取得できます。 SQLiteテーブル。sqliteカーソルから列の値を取得するには?

SQLiteエディタで同じクエリを実行し、結果セットに生成されたカラムの値も表示します。

カーソルからカーソルを取得しているときに、この値がnullになるのはなぜですか?

+2

照会し、列の値を取得するために使用したコードを入力してください。 –

+0

@Chandrapal Yadav:確かに、あなたはクエリを発生させるときにその列を含めていますか?確かに、あなたはそれを逃すことはありません! – Hiral

+0

http://stackoverflow.com/questions/10600670/sqlitedatabase-query-method – Michimcchicken

答えて

56

非常に単純なあなたは、カーソルの列名は大文字と小文字が区別され、あなたがデシベルまたは列別名で指定された場合に一致させる次の方法のいずれか

String id = cursor.getString(cursor.getColumnIndex("id")); // id is column name in db 

または

String id = cursor.getString(cursor.getColumnIndex(0)); // id is first column in db 
+1

.. queryメソッドを使用して ...このリンクを見てみてください。この例では、カーソルとは何ですか? –

3

によってそれを得ることができます名前

2
  1. 選択クエリの列インデックスがわからない場合は、あなたがその呪文に

    名「DBConstant.java」でデータベースCostantクラスを作成し、定義 テーブルのフィールド

    を確認する必要はありません、フィールド 名を取得するのは簡単ですので は、テーブルのすべてのフィールドの定数の定義します

    public static final String ID = "id";

    そして

    cursor.getString(cursor.getColumnIndex(DBConstant.ID))、カーソルから値を取得します。

    cursor.getColumnIndex(フィールド名);あなたはフィールドのインデックスを返します。 cursor.getString(列インデックス)。それは、その列

  2. あなたの選択クエリ内の列のインデックスを知っている場合は上にある値、

    cursor.getStringを返します(0);

関連する問題